Фильтрация включенных коллекторов

Экспортер узлов 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) будет доступно.

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