Можете ли вы заменить тире в названии метрики на подчеркивание? - PullRequest
1 голос
/ 26 марта 2019

Я очищаю экспортер, который дает мне метрические названия с тире. В именах метрик Прометея не должно быть тире, поэтому я не могу их очистить.

Можно ли заменить тире символом подчеркивания, чтобы сделать имя метрики действительным?

  • Ток: collectd_a-b_derive_total.
  • Желаемый: collectd_a_b_derive_total.

Я добавил это в свой конфиг, но он не работает.

      - source_labels: [__name__]
        regex: "(.*)-(.*)"
        action: replace
        target_label: "${1}_${2}"

Кроме того, каков хороший способ отладки этого?

1 Ответ

0 голосов
/ 28 марта 2019

Я отправил по электронной почте список рассылки пользователей Prometheus, и кто-то ответил, что Prometheus не может «исправить» имена метрик с помощью тире / дефисов.

Поскольку я предпочитаю не редактировать приложение, генерирующее метрики, я нашел обходной путь.

  1. Настройка Nginx.
  2. Настройка его в качестве обратного прокси.
    • Прослушивание 19103.
    • Получить и переписать тело из 9103, используя директиву sub_filter Nginx.
  3. Сконфигурировать Prometheus для очистки 19103 вместо 9103.

Пример обратного proxy.conf:

server{
  listen 19103;

  location / {
    proxy_pass http://127.0.0.1:9103;
    sub_filter_types *;
    sub_filter 'purple-' 'purple_';
    sub_filter_once off;
  }
}
...