使用普罗米修斯的自定义计数器在/ actuator / prometheus上不可见

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

我正在尝试在我的Spring-boot应用程序中添加自定义指标。我看过许多示例,但仍然无法添加自定义计数器。

application.properties

management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled=true

code

static final Counter requests = 
Counter.build().namespace("java").name("requests_total").help("Total requests.")
.register();

@CrossOrigin
@GetMapping("/test")
public int processRequest() {
    requests.inc();
    return (int) requests.get();
}

访问API后,我看到计数器值增加。问题是我无法在http://localhost:8080/actuator/prometheus和Prometheus :9090页面上找到新创建的指标。所以我认为计数器没有被注册(??)。我在这里想念什么?

java spring-boot prometheus metrics spring-boot-actuator
1个回答
0
投票

看来您正在直接使用Prometheus Java API。您创建的计数器已使用Prometheus Java API的默认CollectorRegistry注册,但未在Micrometer上注册,因为它正在实例化其自己的CollectorRegistry,因此此处未显示您的计数器。

您应该使用千分尺Counter API,而不是直接使用Prometheus Java API。这具有额外的好处,即您可以交换监视后端,而无需对仪器代码进行任何更改。

此外,您似乎想衡量HTTP请求。这些通常是自动计时的。在http_server_requests_seconds_[count,sum,max]端点中查找一个称为/actuator/prometheus的度量标准系列。

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