annotate victoriametrics_write.py @ 7:a640efa9fb01

logging
author drewp@bigasterisk.com
date Sat, 10 Aug 2024 23:05:18 -0700
parents cd1b8d7bda78
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
1 import httpx
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
2 import logging
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
3 log = logging.getLogger()
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
4
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
5 class MetricsWriter:
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
6 # todo: this could merge quick writes, keep the connection open, etc.
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
7 agentImportUrl = "http://victoriametrics-forever-vmagent/m/forever/vmagent/api/v1/import"
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
8
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
9 def write(self, t, metricEvent):
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
10 # To see inserted data, try this:
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
11 # curl http://`khost victoriametrics-vmselect`/m/vmselect/select/0/prometheus/api/v1/export -d 'match[]=vm_http_request_errors_total'
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
12 labelDict = dict((x['labelName'], x['labelValue']) for x in metricEvent['labels'])
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
13 promBody = {
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
14 "metric": {
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
15 "__name__": metricEvent['name']
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
16 } | labelDict,
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
17 "values": [metricEvent['value']],
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
18 "timestamps": [int(t * 1000)],
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
19 }
7
a640efa9fb01 logging
drewp@bigasterisk.com
parents: 4
diff changeset
20 # log.info(promBody)
4
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
21 req = httpx.post(
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
22 self.agentImportUrl,
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
23 json=promBody,
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
24 headers={'content-type': 'application/stream+json'},
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
25 )
cd1b8d7bda78 get metrics writing to victoriametrics
drewp@bigasterisk.com
parents:
diff changeset
26 req.raise_for_status()