问题描述
我正在使用 python prometheus 客户端并且在将指标推送到 VictoriaMetrics (VM) 时遇到问题。
有一个名为 push_to_gateway
的函数,我尝试用 VM 替换 prometheus URL:http://prometheus:9091 -> http://vm:8428/api/v1/write
。但是 VM 响应了 400 状态代码。
解决方法
可以将 push_to_gateway
方法与 VictoriaMetrics 一起使用,请查看 gist https://gist.github.com/f41gh7/85b2eb895bb63b93ce46ef73448c62d0 中的示例
我在 /api/v1/import/csv
使用 CSV 导入,如下所述:https://github.com/VictoriaMetrics/VictoriaMetrics/blob/master/README.md#how-to-import-csv-data
直接从 Pandas 数据帧生成 CSV。类似的东西:
df.rename(columns={'timestamp': 'ts_ns'},inplace=True)
data = df.to_csv(index=False,header=False)
csv_format = f'1:time:unix_ns{metric_format}{label_format}'
response = requests.post(url,params={'format': csv_format},data=data)
,
另外,请看一下我最近创建的客户端:https://github.com/gistart/prometheus-push-client
支持使用 InfluxDB 线路协议通过 UDP 和 HTTP 直接推送到 VictoriaMetrics
通过 UDP 到 StatsD 或 statsd-exporter 的 StatsD 格式
通过 HTTP 以 OpenMetrics 格式推送网关或 prom-aggregation-gateway