Есть ли способ в promql получить все доступные имена меток с помощью thanos api?
У меня есть promql, который дает мне результат метрики в целом с сервера, но я заинтересован в фильтрации и получении результатов для определенного значения, но я не уверен, каким может быть имя метки для этого значения, если я могу увидеть все доступные имена, я смогу хотя бы попасть в него методом проб и ошибок, но без названий ярлыков я ничего не могу сделать.
3 ответа
Хотя PromQL не предоставляет функции для возврата всех доступных имен меток, API запросов Prometheus предоставляет такие функции через обработчик /api/v1/labels.
Этот обработчик поддерживает необязательные start
а также end
аргументы запроса, которые могут использоваться для ограничения временного диапазона для возвращаемых имен меток. VictoriaMetrics также поддерживаетmatch[]
аргументы запроса, которые можно использовать для дополнительной фильтрации временных рядов. Например, запрос к/api/v1/labels?match=foo{bar="baz"}
вернет только имена меток для сопоставления временных рядов foo{bar="baz"}
селектор временных рядов. См. Эти документы для получения более подробной информации.
Ответ @valyala полезен для имен меток/метрик. Но если вы хотите получить все значения метки, вы можете вызвать/api/v1/label/{YOUR_LABEL_NAME}/values
. См. документы . Например:
$ curl http://localhost:9090/api/v1/label/instance/values
{
"status" : "success",
"data" : [
"node1",
"node2",
"node3",
]
}
/api/v1/labels
подходит для пользователей Prometheus, но поведение Thanos несколько несовместимо , поэтому будьте осторожны при использовании этого API.