Quarkus 服务不使用微米 otlp 公开指标端点

问题描述 投票:0回答:1

我正在尝试找到一种方法将跟踪和指标从 Quarkus 服务导出到我的开放遥测收集器。按照 Quarkus 文档,跟踪工作正常。但我无法让指标发挥作用。主要问题源自与 quarkus-micrometer-registry-otlp 交换smallrye-metrics。

我已经在我的 application.yaml 中配置了这个:

    micrometer:
        export:
            otlp:
                enabled: true
                url: http://localhost:4317

不过,我没有看到任何指标被导出。此外,还有一个问题是,Quarkus 文档建议的新微米扩展没有公开度量端点(smallrye-metrics 做到了这一点)。因此我看到很多

"HTTP Request to /{myService}/metrics failed
在集群中运行服务时。 有谁知道如何使微米指标导出器与最新的 quarkus 版本一起工作以及我必须配置什么才能再次公开指标端点? 非常感谢您的帮助!

quarkus metrics open-telemetry micrometer open-telemetry-collector
1个回答
0
投票

这里似乎有两个独立的问题:第一个是 OTLP 指标未导出。 OTLP 是一种基于推送的协议,因此它会定期向收集器发送指标。

收集器端点将是:

http://localhost:4317/v1/metrics
(也许您缺少那里的
/v1/metrics
路径?)。

至于失败的请求

/{myservice}/metrics
:似乎其他一些服务正在尝试从您的服务中提取指标。这通常在导出普罗米修斯格式时完成(这是基于拉动的,即消费者试图从服务获取指标而不是服务推送指标)。

我不知道你的设置,但通常有两种方法将数据从生产者获取到收集器:

  1. 使用 OTLP 导出器并将数据推送到收集器,然后找出哪个服务正在尝试抓取
    /metrics
    端点并将其关闭或
  2. 使用
    micrometer-registry-prometheus
    ,这将创建
    /metrics
    端点并使收集器抓取数据。我想你会使用收集器上的
    prometheusreciever
    来做到这一点。

从我对 Smallrye 的(非常有限的)检查来看,他们似乎提供了 Prometheus 导出器,因此您的设置可能已经使用基于拉动的模型。会有一些指标使用者试图从您的服务获取指标,从而导致请求失败。

© www.soinside.com 2019 - 2024. All rights reserved.