prometheus应用Counter&&Gauge

综述

一、Counter

错误写法

复制代码
Counter.builder("api_request_total")
                    .description("Total number of API requests")
                    .tag("uri", request.getRequestURI())
                    .tag("method", request.getMethod())
                    .tag("status", String.valueOf(responseWrapper.getStatus()))
                    .register(meterRegistry)
                    .increment();

jakarta.servlet.ServletException: Request processing failed: java.lang.IllegalArgumentException: Failed to register Collector of type MicrometerCollector: repository_method_list_elements_sum is already in use by another Collector of type MicrometerCollector

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1022) ~spring-webmvc-6.1.5.jar:6.1.5

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:914) ~spring-webmvc-6.1.5.jar:6.1.5

不应该重复注册,正确写法:

复制代码
 Counter requestCounter = meterRegistry.find("api_request_total")
                    .tag("uri", request.getRequestURI())
                    .tag("method", request.getMethod())
                    .tag("status", String.valueOf(responseWrapper.getStatus()))
                    .counter();
            if (requestCounter == null) {
                requestCounter = Counter.builder("api_request_total")
                        .description("Total number of API requests")
                        .tag("uri", request.getRequestURI())
                        .tag("method", request.getMethod())
                        .tag("status", String.valueOf(responseWrapper.getStatus()))
                        .register(meterRegistry);
            }
            requestCounter.increment();

二、Gauge

相关推荐
摇滚侠13 小时前
MyBatis 入门到项目实战 MyBatis 的缓存 56-61
java·缓存·mybatis
让我上个超影吧13 小时前
Claude code:Hooks
java·数据库·ai编程
RH23121113 小时前
2026.6.8Linux
java·数据库·中间件
于指尖飞舞13 小时前
java后端面试题(多线程极简)
java·开发语言
IT 行者13 小时前
GitHub Spec Kit 实战(四):读懂和干预 /speckit.plan——AI 最自由发挥的一步
java·人工智能·github·ai编程·claude
独隅13 小时前
IntelliJ IDEA 在 Windows 上的完整安装与使用指南
java·windows·intellij-idea
Misnearch13 小时前
为什么List<int[]> ans = new ArrayList<>()能成功创建
java·object
梦想的颜色14 小时前
从零入门:Docker在Ubuntu上的安装、使用与主流镜像仓库实战(Java/Go/MySQL/PostgreSQL/MongoDB/Nginx
java·ubuntu·docker
是多巴胺不是尼古丁14 小时前
期末java复习--string
java·开发语言·python
Survivor00114 小时前
高并发系统流量治理的底层算法
java·开发语言