annotate metric @ 88:cb159e4e790c default tip

metric
author drewp@bigasterisk.com
date Sat, 07 Sep 2024 19:58:32 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
88
drewp@bigasterisk.com
parents:
diff changeset
1 #!/usr/bin/python3
drewp@bigasterisk.com
parents:
diff changeset
2
drewp@bigasterisk.com
parents:
diff changeset
3 import json
drewp@bigasterisk.com
parents:
diff changeset
4 import subprocess
drewp@bigasterisk.com
parents:
diff changeset
5 import sys
drewp@bigasterisk.com
parents:
diff changeset
6 import time
drewp@bigasterisk.com
parents:
diff changeset
7 import httpx
drewp@bigasterisk.com
parents:
diff changeset
8
drewp@bigasterisk.com
parents:
diff changeset
9 [q, hours] = sys.argv[1:]
drewp@bigasterisk.com
parents:
diff changeset
10
drewp@bigasterisk.com
parents:
diff changeset
11 vmselect = subprocess.check_output(['khost', 'victoriametrics-vmselect']).decode('utf8')
drewp@bigasterisk.com
parents:
diff changeset
12 t2 = time.time()
drewp@bigasterisk.com
parents:
diff changeset
13 t1 = t2 - float(hours) * 3600
drewp@bigasterisk.com
parents:
diff changeset
14
drewp@bigasterisk.com
parents:
diff changeset
15 res = httpx.get(f'http://{vmselect}/m/vmselect/select/0/prometheus/api/v1/query_range', params={
drewp@bigasterisk.com
parents:
diff changeset
16 'query': q,
drewp@bigasterisk.com
parents:
diff changeset
17 'start': t1,
drewp@bigasterisk.com
parents:
diff changeset
18 'end': t2,
drewp@bigasterisk.com
parents:
diff changeset
19 'step': f'{max(5, (t2 - t1) / 250)}s',
drewp@bigasterisk.com
parents:
diff changeset
20 })
drewp@bigasterisk.com
parents:
diff changeset
21 res.raise_for_status()
drewp@bigasterisk.com
parents:
diff changeset
22 response = res.json()
drewp@bigasterisk.com
parents:
diff changeset
23 out = []
drewp@bigasterisk.com
parents:
diff changeset
24 first = response['data']['result'][0]
drewp@bigasterisk.com
parents:
diff changeset
25 for row in first['values']:
drewp@bigasterisk.com
parents:
diff changeset
26 out.append({'t': row[0], first['metric']['__name__']: float(row[1])})
drewp@bigasterisk.com
parents:
diff changeset
27 print(json.dumps(out))