我正在尝试找到一种方法将跟踪和指标从 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 版本一起工作以及我必须配置什么才能再次公开指标端点?
非常感谢您的帮助!
这里似乎有两个独立的问题:第一个是 OTLP 指标未导出。 OTLP 是一种基于推送的协议,因此它会定期向收集器发送指标。
收集器端点将是:
http://localhost:4317/v1/metrics
(也许您缺少那里的/v1/metrics
路径?)。
至于失败的请求
/{myservice}/metrics
:似乎其他一些服务正在尝试从您的服务中提取指标。这通常在导出普罗米修斯格式时完成(这是基于拉动的,即消费者试图从服务获取指标而不是服务推送指标)。
我不知道你的设置,但通常有两种方法将数据从生产者获取到收集器:
/metrics
端点并将其关闭或micrometer-registry-prometheus
,这将创建 /metrics
端点并使收集器抓取数据。我想你会使用收集器上的 prometheusreciever
来做到这一点。从我对 Smallrye 的(非常有限的)检查来看,他们似乎提供了 Prometheus 导出器,因此您的设置可能已经使用基于拉动的模型。会有一些指标使用者试图从您的服务获取指标,从而导致请求失败。