VictoriaMetrics 支持来自 Prometheus 查询 API 的以下处理程序:
- /api/v1/query
- /api/v1/query_range
- /api/v1/series
- /api/v1/labels
- /api/v1/label/…/values
- /api/v1/status/tsdb. See these docs for details.
- /api/v1/targets - see these docs for more details.
数据源
查看vm的数据,作为查询的数据源
curl -G 'http://localhost:8428/api/v1/export' -d 'match={__name__=~"galaxy_uptime"}'
结果为:
{"metric":{"__name__":"galaxy_uptime","instance":"m1"},"values":[8],"timestamps":[1634625140000]}
{"metric":{"__name__":"galaxy_uptime","instance":"m1","foo":"bar"},"values":[8],"timestamps":[1634625140000]}
有两条数据,不同的tag。
查询VM
可以使用Prometheus的HTTP API 查询VM时序数据库。
可以从与 Prometheus 兼容的客户端(例如 Grafana 或 curl)查询这些处理程序。 所有 Prometheus 查询 API 处理程序都可以添加 /prometheus 前缀。 例如, /prometheus/api/v1/query 和 /api/v1/query 都应该可以工作。
curl 'http://localhost:8428/api/v1/query?query=galaxy_uptime&time=1634625140'
或者
curl 'http://localhost:8428/prometheus/api/v1/query?query=galaxy_uptime&time=1634625140'
获得结果:
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"galaxy_uptime","foo":"bar","instance":"m1"},"value":[1634625140,"8"]},{"metric":{"__name__":"galaxy_uptime","instance":"m1"},"value":[1634625140,"8"]}]}}%
VM在Prometheus querying API加强的HTTP API查询功能
通过http参数设置tag值
/api/v1/query_range?extra_label=user_id=123&query=<query>
通过http参数设置最近的时间起点
例如最近的26小时的数据。
curl 'http://localhost:8428/prometheus/api/v1/query_range?query=galaxy_uptime&start=-26h'
VictoriaMetrics accepts round_digits
query arg
VictoriaMetrics 接受 /api/v1/query 和 /api/v1/query_range 处理程序的 round_digits 查询参数。 它可用于将响应值四舍五入到小数点后给定的位数。 例如, /api/v1/query?query=avg_over_time(temperature[1h])&round_digits=2 会将响应值四舍五入到小数点后两位。
将多个值,1+8+1+8=18,除以point的数量4,获得结果4.5。
默认情况下,VictoriaMetrics 从 /api/v1/series 返回最近 5 分钟的时间序列,而 Prometheus API 默认为所有时间。 使用开始和结束选择不同的时间范围。
我觉得 “Prometheus API 默认为所有时间”,是指真正的Prometheus的API,而不是vm的“http://localhost:8428/prometheus”这种api。
/api/v1/series
根据label查询series的个数。默认vm返回最近 5 分钟的时间序列,需要制定start才能查询到超过5分钟的数据。
vm对于查询api的增强,还有对自身查询的统计信息。例如,可以统计最近频繁查询的sql。
curl 'http://localhost:8428/api/v1/status/top_queries'
{"topN":"20","maxLifetime":"10m0s","search.queryStats.lastQueriesCount":20000,"search.queryStats.minQueryDuration":"1ms","topByCount":[{"query":"http://localhost:8428/prometheus/api/v1/query?query=galaxy_uptime","timeRangeSeconds":144000,"count":1}],"topByAvgDuration":[{"query":"http://localhost:8428/prometheus/api/v1/query?query=galaxy_uptime","timeRangeSeconds":144000,"avgDurationSeconds":0.001,"count":1}],"topBySumDuration":[{"query":"http://localhost:8428/prometheus/api/v1/query?query=galaxy_uptime","timeRangeSeconds":144000,"sumDurationSeconds":0.001,"count":1}]}%
还有查询series条数,查询tag与记录条数的对应关系。
参考:
VictoriaMetrics · The High Performance Open Source Time Series Database & Monitoring Solution