Используйте регулярное выражение в запросе prometheus increase

#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 ? Можете ли вы добавить к нему что-нибудь?