Фильтрация включенных коллекторов
Экспортер узлов Prometheus не имеет простого способа отключить все метрики по умолчанию, не передавая 20 флагов процессу. В документации кажется, что может быть более простой способ получить только соответствующие метрики:
Фильтрация включенных коллекторов
...
Для расширенного использования node_exporter может быть передан необязательный список сборщиков для фильтрации метрик. Параметр collect[] может использоваться несколько раз. В конфигурации Prometheus вы можете использовать этот синтаксис в конфигурации Scrape.
params: collect[]: - foo - bar
Это может быть полезно, если разные серверы Prometheus собирают определенные метрики с узлов.
Я предполагаю, что вы помещаете параметры непосредственно под свой scrape_config, потому что есть соответствующее поле параметров. Тем не менее, что именно должно идти под коллекцией []? Примеры foo и bar не могут быть менее наглядными. Это аргумент командной строки (например, "--collector.cpu"), имя сборщика (например, "cpu"), имя метрики сборщика (например, "node_cpu"), фактическая метрика (например, "node_cpu_seconds_total" "), или что-то другое?
3 ответа
Есть еще одно решение, которое является общим и может работать со всеми экспортерами. relabel_map_config - это параметр конфигурации, который можно установить в файле конфигурации prometheus. Как указано в документации:
Одним из способов использования этого является занесение в черный список временных рядов, которые слишком дороги для приема.
Таким образом, вы можете удалить или сохранить метрики, которые соответствуют регулярному выражению. Например, чтобы хранить только показатели процессора, собранные экспортером узлов, вы можете использовать следующее внутри prometheus.yml
файл:
scrape_configs:
- job_name: node
static_configs:
- targets:
- localhost:9100
metric_relabel_configs:
- source_labels: [__name__]
regex: node_cpu_.*
action: keep
При тестировании сборщика узла параметр collect[] должен быть именем сборщика. Например, имя из --collector.cpu
является cpu
,
Если вы указали недействительный коллектор, такой как foo
вы получите следующее HTTP-сообщение "400 Bad Request":
Couldn't create missing collector: foo
Как сказал user369450 , параметр, ожидаемый внутри
collect[]
параметр - имя коллектора.
В дополнение к ответу ниже вы можете найти рабочий пример конфигурации экспортера узлов, фильтрующего только сборщики и сборщики:
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['localhost:9090']
# Node exporter
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
params:
collect[]:
- cpu
- meminfo
- filesystem
Имейте в виду, что к старым собранным метрикам по-прежнему можно получить доступ, но после перезапуска
prometheus
сервис, только отфильтрованные метрики (
cpu
,
meminfo
а также
filesystem
) будет доступно.