Кодируется вопросительный знак в Prometheus metrics_path

#prometheus

#prometheus

Вопрос:

Поскольку Prometheus поддерживает только текстовые метрики и многие метрики возврата инструментов в json (например, Finatra, Spring Boot), я создал простой прокси, который переводит json в текст. Поскольку я хочу использовать его для нескольких источников, цель, из которой должны быть получены фактические показатели, задается с помощью параметра запроса.

URL-адрес метрики выглядит следующим образом:

/metrics?prefix=finatraamp;url=http://<ip>:9990/admin/metrics.json

Это отлично работает в браузере или curl. Однако в Prometheus ‘?’ кодируется в ‘?’, и поэтому запрос завершается ошибкой:

/metrics?prefix=finatraamp;url=http://<ip>:9990/admin/metrics.json

Как я могу запретить Prometheus кодировать?? Это ошибка в Prometheus? Я уже пытался выполнить экранирование с помощью % or , используя Unicode и т.д., Но все еще безуспешно.

Ответ №1:

Такое поведение является правильным, поскольку путь к метрикам является путем, а не произвольным суффиксом в протоколе, хосте и порту.

Вы ищете параметр конфигурации <a rel="noreferrer noopener nofollow" href="https://prometheus.io/docs/prometheus/latest/configuration/configuration/#» rel=»noreferrer»>params:

 scrape_configs:
  - job_name: 'somename'
    params:
      prefix: ['finatra']
      url: ['http://:9090/admin/metrics.json']
  

Комментарии:

1. Есть какие-нибудь советы по выполнению: params: match[]: {__name__=»up»} ? переход через прокси.