如何从VictoriaMetrics获取度量标签值



在VictoriaMetrics中有几个API处理程序,如/API/v1/labels,但正如我所看到的,没有办法通过另一个标签过滤一个标签。假设我有以下结构:标签{<<strong>名称/strong>,应用程序,名称空间,实例}其中名称是一个指标,app是一个服务名称。我想要得到所有不同的度量名称app=service1。这可以用VM的HTTP API完成吗?

我唯一的想法是通过/api/v1/查询得到一切,并执行一些排序和过滤与很多逻辑,这在我看来就像一个人工智能发明?因为查询将返回大量的数据,即使时间戳不是一个范围。

你能试着用这个例子吗?我想这应该能解决你的问题。

curl -XGET -G 'http://localhost8428/api/v1/label/__name__/values --data-urlencode 'match[]={__name__=~".+", app="service1"}'

在这种情况下,响应将使用包含标签值对的所有度量名称,如app="service1"

例如,我的测试请求

curl -XGET -G 'http://localhost:8428/api/v1/label/__name__/values --data-urlencode 'match[]={__name__=~".+", job="vmselect"}'

返回如下内容

{"status":"success","isPartial":false,"data":["flag","go_cgo_calls_count","go_cpu_count",...,"vm_zstd_block_compress_calls_total","vm_zstd_block_compressed_bytes_total","vm_zstd_block_decompress_calls_total","vm_zstd_block_original_bytes_total","vmselect_request_duration_seconds_bucket","vmselect_request_duration_seconds_count","vmselect_request_duration_seconds_sum"]}

存在job="vmselect"标签值对的所有指标名称

最新更新