Как мы можем добавить дополнительную метку к метрикам Prometheus?

Предположим, что мы собираем одни и те же метрики в течение одного месяца, и теперь мы хотим изменить метрики, чтобы иметь дополнительную метку (также в старых данных), как мы можем это сделать. Существующая метрика:

mongodb_exporter_last_scrape_duration_seconds{instance="127.0.0.1:9216",job="mongo"}

Хотите изменить это на:

mongodb_exporter_last_scrape_duration_seconds{cluster="stage", instance="127.0.0.1:9216",job="mongo"}   

5 ответов

- job_name: 'your_job'                 
  honor_labels: true                         
  static_configs:                     
  - targets:                          
    - '127.0.0.1'          
    labels:                           
      cluster: 'stage'

К сожалению, в Prometheus невозможно изменить метки старых метрик.

Хранилище обновляется только новыми царапинами, после чего оно становится неизменным.

если у вас есть конфигурация обнаружения службы, вы также можете добавить метки в relabels_config

      relabel_configs:
  - target_label: cluster
    replacement: stage

Prometheus не предоставляет возможности добавлять новые метки к историческим временным рядам. Но можно добавить недостающие метки во время запросов с помощью функции label_replace() :

      label_replace(
  mongodb_exporter_last_scrape_duration_seconds,
  "cluster",
  "staging",
  "cluster",
  ""
)

Этот label_replace()вызов добавляет cluster="staging"маркировать только в том случае, если clusterметка отсутствует в исходном временном ряду, выбранном с помощью mongodb_exporter_last_scrape_duration_seconds селектор серии .

https://prometheus.io/docs/prometheus/latest/querying/functions/#label_replacehttps://medium.com/@texasdave2/replace-and-remove-a-label-in-a-prometheus-query-9500faa302f0

Фактически, метод label_replace только добавляет новую метку к показателям, но не заменяет ее. Таким образом, я могу использовать этот метод для добавления новой метки, если вы не хотите изменять конфигурацию prometheus.yml.

Для вашего случая:

mongodb_exporter_last_scrape_duration_seconds{instance="127.0.0.1:9216",job="mongo"}

label_replace(mongodb_exporter_last_scrape_duration_seconds{instance="127.0.0.1:9216",job="mongo"}, "cluster", "stage", "(.*)")

Другие вопросы по тегам