Prometheus – это популярный набор инструментов для мониторинга и оповещения с открытым исходным кодом, широко используемый в сообществе DevOps. Одной из его ключевых особенностей является гибкая и мощная система меток, которая позволяет эффективно классифицировать и организовывать ваши показатели. В этой статье блога мы глубоко погрузимся в мир меток Prometheus и исследуем различные методы манипулирования и извлечения ценной информации из данных временных рядов. Итак, начнём!
- Добавление ярлыков к метрикам:
Ярлыки предоставляют контекстную информацию вашим метрикам, позволяя различать разные экземпляры одной и той же метрики. Вот пример того, как можно добавить метки к метрике в 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().
- Фильтрация показателей по ярлыкам:
Prometheus позволяет фильтровать показатели на основе определенных значений меток. Это может быть полезно, если вы хотите сосредоточиться на определенных подмножествах ваших данных. Вот пример:
http_requests_total{method="GET", status_code="200"}
В этом запросе PromQL мы фильтруем метрику http_requests_total, чтобы включить только те точки данных, где для метки methodустановлено значение "GET", а для "GET"Для метки s>12установлено значение "200".
- Агрегирование показателей по ярлыкам:
Вы можете агрегировать показатели по ярлыкам, чтобы получить ценную информацию по различным параметрам. Одной из распространенных операций агрегирования является суммирование значений метрик на основе определенных комбинаций меток. Вот пример:
sum(http_requests_total) by (method)
Этот запрос вычисляет сумму показателя http_requests_totalдля каждого отдельного значения метки method.
- Изменение ярлыков с помощью повторной маркировки:
Прометей предоставляет мощную функцию, называемую изменением меток, которая позволяет динамически изменять метки. Это может быть удобно, если вы хотите изменить или упростить структуру этикетки. Вот пример конфигурации:
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.
- Удаление ярлыков:
Иногда вам может потребоваться удалить определенные ярлыки из ваших показателей. Prometheus позволяет добиться этого с помощью функции drop()в PromQL. Вот пример:
drop(http_requests_total{method="POST"}, status_code)
В этом запросе мы удаляем метку status_codeиз показателя http_requests_totalдля всех точек данных, где для метки methodустановлено значение "POST".
Ярлыки Prometheus — мощный механизм для организации и анализа ваших показателей. В этой статье мы рассмотрели различные методы работы с метками, включая добавление меток к метрикам, фильтрацию и агрегирование метрик по меткам, изменение меток с помощью повторной маркировки и удаление меток. Освоив эти методы, вы сможете раскрыть весь потенциал Prometheus и получить ценную информацию о производительности вашей системы. Приятного просмотра!