view metric @ 88:cb159e4e790c default tip

metric
author drewp@bigasterisk.com
date Sat, 07 Sep 2024 19:58:32 -0700
parents
children
line wrap: on
line source

#!/usr/bin/python3

import json
import subprocess
import sys
import time
import httpx

[q, hours] = sys.argv[1:]

vmselect = subprocess.check_output(['khost', 'victoriametrics-vmselect']).decode('utf8')
t2 = time.time()
t1 = t2 - float(hours) * 3600

res = httpx.get(f'http://{vmselect}/m/vmselect/select/0/prometheus/api/v1/query_range', params={
    'query': q,
    'start': t1,
    'end': t2,
    'step': f'{max(5, (t2 - t1) / 250)}s',
})
res.raise_for_status()
response = res.json()
out = []
first = response['data']['result'][0]
for row in first['values']:
    out.append({'t': row[0], first['metric']['__name__']: float(row[1])})
print(json.dumps(out))