From 9e506f397616f161a0afb2cd95156692418b6af0 Mon Sep 17 00:00:00 2001 From: Tim Steiner <tim.steiner@nebraska.edu> Date: Tue, 19 Dec 2023 17:25:51 -0600 Subject: [PATCH] Fix varnish cloudwatch, add IMDSv2 tokens. --- varnishstat-to-cloudwatch.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/varnishstat-to-cloudwatch.py b/varnishstat-to-cloudwatch.py index 3835997..5d12ecd 100755 --- a/varnishstat-to-cloudwatch.py +++ b/varnishstat-to-cloudwatch.py @@ -1,8 +1,9 @@ #!/usr/bin/python import boto3 -import urllib2 +#import urllib2 import json +import requests import sys #import re #import tempfile @@ -25,7 +26,7 @@ def main(): previous_data = None metrics = {} while True: - current_data = json.loads(subprocess.check_output(['varnishstat', '-j', '-1', '-f', 'MAIN.client_req', '-f', 'MAIN.cache_hit'])) + current_data = json.loads(subprocess.check_output(['varnishstat', '-j', '-1', '-f', 'MAIN.client_req', '-f', 'MAIN.cache_hit']))['counters'] if previous_data: metric_data = [] for key in current_data: @@ -56,8 +57,10 @@ def main(): # Returns the region the instance is currently running in (eg: 'us-east') def get_region(): - instance_info = urllib2.urlopen('http://169.254.169.254/2018-09-24/dynamic/instance-identity/document/').read() - instance_info = json.loads(instance_info) + session_token = requests.put('http://169.254.169.254/latest/api/token', headers={'X-aws-ec2-metadata-token-ttl-seconds': 60}).text + instance_info = requests.get('http://169.254.169.254/2018-09-24/dynamic/instance-identity/document/', headers={'X-aws-ec2-metadata-token': session_token}).json() + #instance_info = urllib2.urlopen('http://169.254.169.254/2018-09-24/dynamic/instance-identity/document/').read() + #instance_info = json.loads(instance_info) return instance_info['region'] # Returns the instance_id of this VM. -- GitLab