88
|
1 #!/usr/bin/python3
|
|
2
|
|
3 import json
|
|
4 import subprocess
|
|
5 import sys
|
|
6 import time
|
|
7 import httpx
|
|
8
|
|
9 [q, hours] = sys.argv[1:]
|
|
10
|
|
11 vmselect = subprocess.check_output(['khost', 'victoriametrics-vmselect']).decode('utf8')
|
|
12 t2 = time.time()
|
|
13 t1 = t2 - float(hours) * 3600
|
|
14
|
|
15 res = httpx.get(f'http://{vmselect}/m/vmselect/select/0/prometheus/api/v1/query_range', params={
|
|
16 'query': q,
|
|
17 'start': t1,
|
|
18 'end': t2,
|
|
19 'step': f'{max(5, (t2 - t1) / 250)}s',
|
|
20 })
|
|
21 res.raise_for_status()
|
|
22 response = res.json()
|
|
23 out = []
|
|
24 first = response['data']['result'][0]
|
|
25 for row in first['values']:
|
|
26 out.append({'t': row[0], first['metric']['__name__']: float(row[1])})
|
|
27 print(json.dumps(out))
|