【问题标题】:Micronaut: How to get metrics in the Prometheus format?Micronaut:如何获取 Prometheus 格式的指标?
【发布时间】:2018-08-17 09:47:49
【问题描述】:

我应该如何配置 Micronaut 以获取 Prometheus 格式的 /metrics

使用:micronaut 1.0.0.M3

现在:

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

和结果:指标名称列表

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

我需要得到:prometheus 格式的指标(formats)

【问题讨论】:

    标签: metrics prometheus micrometer micronaut


    【解决方案1】:

    Micronaut Micrometer 有一个来自 1.1 版的 PrometheusEndpoint,它将 从/prometheus 以 Prometheus 格式返回和 可以通过以下方式在 application.yml 中启用:

    endpoints:
      prometheus:
        sensitive: false
    

    结合

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

    (文档缺少端点配置,但将是changed in the new release

    【讨论】:

      【解决方案2】:

      为了支持其他答案,这里有一个 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()
          }
      }
      

      【讨论】:

        【解决方案3】:

        目前,我们解决了如下问题。

        1. 添加了一个新端点。或者使用/metrics 上的映射创建一个控制器。
        2. 新端点添加了scrape()的返回。
        3. /prometheus 相关的端点(新端点无法映射到/metrics)。
        4. 默认情况下断开连接的端点指标。

        配置:

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

        【讨论】:

        • 你好,你能解释一下你是怎么做到的吗?我没明白这一点?新端点添加了一个 scrape() 的返回。
        【解决方案4】:

        尚未对此进行测试,但基于以下几点:

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

        你的 yaml 应该是这样的

        metrics:
          prometheus:
            enabled: true
        

        不要相信出口会起作用。

        【讨论】:

        • 这不起作用。 PrometheusMeterRegistry 只是收集指标。它有方法scrape()。此方法返回所需的格式。但是这种方法在任何地方都没有涉及。
        猜你喜欢
        • 2020-04-05
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 2020-02-05
        • 1970-01-01
        • 2019-06-11
        • 1970-01-01
        • 2021-01-05
        相关资源
        最近更新 更多