如何配置 Prometheus 以通过公开路由获取具有 2 个副本的服务的指标?
Posted
技术标签:
【中文标题】如何配置 Prometheus 以通过公开路由获取具有 2 个副本的服务的指标?【英文标题】:How to configure Prometheus to get metrics of a service with 2 replicas through exposed route? 【发布时间】:2020-12-30 01:20:22 【问题描述】:我们在 OpenShift 中部署了一个包含 2 个副本的服务。该服务使用 DropWizard 指标并通过 /actuator/prometheus 端点上的 spring-actuator 公开它们。执行器的端口 8082 有一个暴露路由。Prometheus 配置为从 exposed-service-route/actuator/prometheus' 抓取。
我要解决的问题是:调用暴露路由时,由于有负载均衡器,它从两个pod返回指标,这些指标具有相同的名称,因为服务是相同的,然后当在 Grafana 中显示它们,值不正确。例如。 “processed.messages.count”在收到第一个 pod 的响应时为 40,然后在收到第二个 pod 的响应时变为 150。如何区分这些响应并正确显示它们?假设现在向指标添加标签不是一种选择。
【问题讨论】:
【参考方案1】:你没有。这里的标准方法是绕过负载均衡器直接抓取所有容器/目标。既然你使用了openshift
标签,我建议你看看Prometheus Kubernetes SD。
【讨论】:
以上是关于如何配置 Prometheus 以通过公开路由获取具有 2 个副本的服务的指标?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 JMX 将 Spring Boot 应用程序中的 Kafka 指标公开给 Prometheus?
在 Spring Boot Camel 应用程序公开的 Micrometer / Prometheus 信息中包含其他 JMX 指标