Освоение Prometheus: подробное руководство по работе с этикетками

Prometheus – это популярный набор инструментов для мониторинга и оповещения с открытым исходным кодом, широко используемый в сообществе DevOps. Одной из его ключевых особенностей является гибкая и мощная система меток, которая позволяет эффективно классифицировать и организовывать ваши показатели. В этой статье блога мы глубоко погрузимся в мир меток Prometheus и исследуем различные методы манипулирования и извлечения ценной информации из данных временных рядов. Итак, начнём!

  1. Добавление ярлыков к метрикам:

Ярлыки предоставляют контекстную информацию вашим метрикам, позволяя различать разные экземпляры одной и той же метрики. Вот пример того, как можно добавить метки к метрике в Prometheus:

from prometheus_client import Counter
requests_total = Counter('http_requests_total', 'Total HTTP Requests', ['method', 'status_code'])
requests_total.labels('GET', '200').inc()

В этом примере мы определяем показатель счетчика под названием http_requests_totalс двумя метками: methodи status_code. Затем мы увеличиваем значение показателя для определенной комбинации ярлыков с помощью метода labels().

  1. Фильтрация показателей по ярлыкам:

Prometheus позволяет фильтровать показатели на основе определенных значений меток. Это может быть полезно, если вы хотите сосредоточиться на определенных подмножествах ваших данных. Вот пример:

http_requests_total{method="GET", status_code="200"}

В этом запросе PromQL мы фильтруем метрику http_requests_total, чтобы включить только те точки данных, где для метки methodустановлено значение "GET", а для "GET"Для метки s>12установлено значение "200".

  1. Агрегирование показателей по ярлыкам:

Вы можете агрегировать показатели по ярлыкам, чтобы получить ценную информацию по различным параметрам. Одной из распространенных операций агрегирования является суммирование значений метрик на основе определенных комбинаций меток. Вот пример:

sum(http_requests_total) by (method)

Этот запрос вычисляет сумму показателя http_requests_totalдля каждого отдельного значения метки method.

  1. Изменение ярлыков с помощью повторной маркировки:

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

scrape_configs:
  - job_name: 'my_job'
    metrics_path: '/metrics'
    static_configs:
      - targets: ['localhost:9090']
    metric_relabel_configs:
      - source_labels: ['instance']
        target_label: 'hostname'

В этом примере мы переопределяем метку instanceкак hostname, используя конфигурацию metric_relabel_configs.

  1. Удаление ярлыков:

Иногда вам может потребоваться удалить определенные ярлыки из ваших показателей. Prometheus позволяет добиться этого с помощью функции drop()в PromQL. Вот пример:

drop(http_requests_total{method="POST"}, status_code)

В этом запросе мы удаляем метку status_codeиз показателя http_requests_totalдля всех точек данных, где для метки methodустановлено значение "POST".

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