在VictoriaMetrics中有几个API处理程序,比如/api/v1/标签,但正如我所看到的,没有办法逐个过滤一个标签。假设我有以下结构:标签{名称、app、命名空间、实例},其中名称是度量,app是服务名称。因此,我想得到所有不同的度量名称,其中app=service1。这可以只用VM的HTTP来完成吗?
我唯一的想法是通过/api/v1/query获得所有信息,并使用大量的逻辑执行排序和过滤,这在我看来像是人工智能发明吗?因为查询将返回大量的数据,即使是时间戳,而不是范围。
发布于 2022-11-23 18:43:07
你能试着用这个例子吗。我认为这应该能解决你的问题
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"标签值对。
https://stackoverflow.com/questions/74543659
复制相似问题