Микронавт: Как получить метрики в формате Прометей?

Как мне настроить Micronaut для получения /metrics в формате Prometheus?

Используется: micronaut 1.0.0.M3

В настоящее время:

micronaut:
...
  metrics:
    enabled: true
    export:
      prometheus:
        enabled: true

и результат: список названий показателей

{"names":["jvm.memory.max","executor.pool.size"...]}

Мне нужно получить: метрики в формате prometheus (форматы)


person Avbat    schedule 17.08.2018    source источник


Ответы (4)


Чтобы воспользоваться другими ответами, вот конечная точка Micronaut, которая предоставляет метрики Prometheus в нужном нам формате:

package your.package.name

import io.micrometer.prometheus.PrometheusMeterRegistry
import io.micronaut.management.endpoint.annotation.Endpoint
import io.micronaut.management.endpoint.annotation.Read

@Endpoint(id = "prometheus", value = "/prometheus", defaultEnabled = true, 
defaultSensitive = false)
class PrometheusController(val prometheusMeterRegistry: PrometheusMeterRegistry) {
    @Read
    fun scrape(): String {
        return prometheusMeterRegistry.scrape()
    }
}
person Bob Schultz    schedule 03.12.2018

Микрометр Micronaut имеет PrometheusEndpoint из версии 1.1, которая будет возвращена в формате Prometheus из /prometheus и может быть включена в application.yml следующим образом:

endpoints:
  prometheus:
    sensitive: false

В комбинации с

micronaut:
  metrics:
    enabled: true
    export:
      prometheus:
        enabled: true
        step: PT1M
        descriptions: true

(В документации отсутствует конфигурация конечной точки, но она будет выглядеть следующим образом: изменено в новой версии)

person user2317171    schedule 18.06.2019

На данный момент мы решили проблему следующим образом.

  1. Добавлена ​​новая конечная точка. Или создайте контроллер с отображением на /metrics.
  2. Новая конечная точка добавила возврат scrape().
  3. Коррелированная конечная точка с /prometheus (новая конечная точка не может быть сопоставлена ​​с /metrics).
  4. Показатели отключенной конечной точки, которые по умолчанию.

Конфиг:

micronaut:   
  ...   
  metrics:
    enabled: true
    export:
      prometheus:
        enabled: true 
... 
endpoints:
...
  metrics:
    enabled: false
  prometheus:
    enabled: true
person Avbat    schedule 23.08.2018
comment
Здравствуйте, не могли бы вы объяснить, как вы это сделали? Я не понял этого пункта? Новая конечная точка добавила возврат scrape (). - person Houcem Berrayana; 03.12.2018

Не проверял это, но на основании следующего:

https://github.com/micronaut-projects/micronaut-core/blob/master/configurations/micrometer-registry-prometheus/src/main/java/io/micronaut/configuration/metrics/micrometer/prometheus/PrometheusMeterRegistryFactory.java

Ваш ямл должен выглядеть так

metrics:
  prometheus:
    enabled: true

не верьте, что экспорт играет роль.

person cchanley2003    schedule 22.08.2018
comment
Это не работает. PrometheusMeterRegistry просто собирает метрики. У него есть метод scrape (). Этот метод возвращает требуемый формат. Но этот метод нигде не задействован. - person Avbat; 23.08.2018