Прометей Динами c Метрика_путь - PullRequest
0 голосов
/ 22 января 2020

Prometheus позволяет мне динамически загружать цели с помощью file_sd_config из файла. json, подобного этому

#prometheus.yaml
- job_name: 'kube-metrics'
  file_sd_configs:
  - files:
    - 'targets.json'
[
  {
    "labels": {
      "job": "kube-metrics"
    },
    "targets": [
      "http://node1:8080",
      "http://node2:8080"
    ]
  }
]

Однако мои цели отличаются по metrics_path, а не по хосту (я хочу очистить метрики для каждого узла kubernetes на <kube-api-server>/api/v1/nodes/<node-name>/proxy/metrics/cadvisor), но я могу установить metrics_path только на уровне задания, а не на цель. Достигается ли это даже с помощью Prometheus или мне нужно написать собственный код, чтобы очистить все эти метрики и экспортировать их в одну цель. Также я не смог найти список всех поддерживаемых механизмов автоматического обнаружения, я что-то пропустил в документах?

1 Ответ

1 голос
/ 23 января 2020

Вы можете использовать relabel_config в конфигурации Prometheus, чтобы изменить __metrics_path__ конфигурацию метки.

Принцип заключается в том, чтобы указывать путь метрик в ваших целях в форме host:port/path/of/metrics (примечание: отбросьте http://, это в параметре scheme scrape_config)

[
  {
    "targets": [
      "node1:8080/first-metrics",
      "node2:8080/second-metrics"
    ]
  }
]

, а затем замените соответствующие мета-метки деталями

- job_name: 'kube-metrics'
  file_sd_configs:
  - files:
    - 'targets.json'
  relabel_configs:
    - source_labels: [__address__]
      regex:  '[^/]+(/.*)'            # capture '/...' part
      target_label: __metrics_path__  # change metrics path
    - source_labels: [__address__]
      regex:  '([^/]+)/.*'            # capture host:port
      target_label: __address__       # change target

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

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

Официальный список обнаружения служб находится в документации по конфигурации : ищите *_sd_config в индексе.

...