我正在尝试在我的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
页面上找到新创建的指标。所以我认为计数器没有被注册(??)。我在这里想念什么?
看来您正在直接使用Prometheus Java API。您创建的计数器已使用Prometheus Java API的默认CollectorRegistry
注册,但未在Micrometer上注册,因为它正在实例化其自己的CollectorRegistry
,因此此处未显示您的计数器。
您应该使用千分尺Counter
API,而不是直接使用Prometheus Java API。这具有额外的好处,即您可以交换监视后端,而无需对仪器代码进行任何更改。
此外,您似乎想衡量HTTP请求。这些通常是自动计时的。在http_server_requests_seconds_[count,sum,max]
端点中查找一个称为/actuator/prometheus
的度量标准系列。