Prometheus — это набор инструментов для мониторинга и оповещения с открытым исходным кодом, который завоевал популярность среди команд DevOps. Одной из его ключевых особенностей является возможность собирать метрики из различных целей, таких как приложения и серверы, и сохранять их в базе данных временных рядов. Однако в реальных сценариях не все показатели актуальны или необходимы для целей мониторинга. В этой статье блога мы рассмотрим несколько методов фильтрации метрик при парсинге с помощью Prometheus, используя разговорный язык и предоставив примеры кода, чтобы сделать концепции более доступными.
Метод 1. Фильтры черного списка
Один из способов фильтрации показателей – использование фильтров черного списка. Эти фильтры исключают сбор и сохранение определенных показателей Prometheus. Давайте посмотрим на пример фрагмента файла конфигурации (prometheus.yml):
scrape_configs:
- job_name: myapp
metrics_path: /metrics
static_configs:
- targets:
- myapp:8080
metric_relabel_configs:
- source_labels: [__name__]
regex: 'unwanted_metric_.*'
action: drop
В этом примере любая метрика с именем, соответствующим шаблону «нежелательнаяметрика.*», будет удалена, что приведет к ее эффективной фильтрации.
Метод 2. Фильтры белого списка
В качестве альтернативы вы можете использовать фильтры белого списка, чтобы включать в процесс очистки только определенные показатели. Такой подход позволяет вам более избирательно выбирать метрики, которые вы хотите сохранить. Вот пример фильтрации белого списка в конфигурации Prometheus:
scrape_configs:
- job_name: myapp
metrics_path: /metrics
static_configs:
- targets:
- myapp:8080
metric_relabel_configs:
- source_labels: [__name__]
regex: 'wanted_metric_.*'
action: keep
В этом случае будут сохранены только метрики с именами, соответствующими шаблону «wantedmetric.*», а все остальные будут удалены.
Метод 3. Изменение метки
Переименование метрик обеспечивает гибкий способ манипулирования названиями и метками метрик перед их сохранением. Его можно использовать как для фильтрации, так и для переименования метрик. Вот пример:
scrape_configs:
- job_name: myapp
metrics_path: /metrics
static_configs:
- targets:
- myapp:8080
metric_relabel_configs:
- source_labels: [__name__]
regex: 'unwanted_metric_.*'
action: drop
- source_labels: [__name__]
regex: 'renamed_metric_(.*)'
replacement: 'new_metric_$1'
target_label: __name__
В этом примере первое правило изменения меток удаляет любую метрику с именем, соответствующим шаблону «нежелательнаяметрика.». Второе правило переименовывает метрики, соответствующие шаблону «renamedmetric(.)» на «newmetric$1».
Отфильтрация нерелевантных показателей — важный аспект эффективного мониторинга с помощью Prometheus. В этой статье мы рассмотрели три метода достижения этой цели: фильтры черного списка, фильтры белого списка и перемаркировка метрик. Используя эти методы, вы можете гарантировать, что будут сохранены только необходимые показатели, что приведет к более целенаправленной и управляемой системе мониторинга.