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

相关推荐
海的透彻3 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat3 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习4 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one4 小时前
算法--构造
java·数据结构·算法
SL_staff4 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
SL_staff5 小时前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
Mikko76 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
.Bryce.6 小时前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测
SL_staff6 小时前
JVS-APS的7个刚性约束设计:从无限产能幻觉到可执行排产的工程实践
java·spring cloud·全栈
代码山河7 小时前
基本类型转换:自动类型转换与强制类型转换
java·学习·架构·教程·面向对象·项目