#regex #prometheus #promql
#регулярное выражение #prometheus #promql
Вопрос:
Я использую grafana и prometheus для запроса нескольких показателей из разных сред и экземпляров / кластеров. Регулярное выражение помогает мне уменьшить количество запросов на панели управления grafana.
Например, вместо создания запроса для каждого экземпляра (иногда я не могу знать имена или количество экземпляров), я использую это:
{__name__=~"ReadUser:.*",account="dev",Function="Max"}
Таким образом, я получаю показатели из нескольких разных динамически создаваемых экземпляров, касающиеся операции чтения пользователя.
Конечно, я не могу использовать его для такого запроса:
increase(ReadUser:<instance-name>{account="dev",Function="TotalDuration"}[30s]) / ignoring(Function) increase(ReadUser:<instance-name>{account="dev",Function="Counter"}[30s])
Мой вопрос в том, как я могу использовать регулярное выражение, чтобы использовать только один запрос promql для отображения этого результата запроса для всех доступных экземпляров (помните, что они создаются динамически и могут достигать довольно большого числа)
Ответ №1:
Проще говоря: не помещайте такие вещи, как имя экземпляра, в имя метрики / __name__
. Если вы не можете изменить его в исходном коде, перепишите метки с помощью metric relabel config .
Комментарии:
1. не очень полезно, но спасибо. имена метрик не будут изменены в ближайшем будущем
2. Ну, у вас есть доступ к
prometheus.yml
? Можете ли вы добавить к нему что-нибудь?