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

相关推荐
xier_ran12 小时前
【C++】static 关键字与 const 关键字的作用
java·数据库·microsoft
凭君语未可12 小时前
为什么需要代理?从一个基础问题理解 JDK 静态代理
java·开发语言
Makoto_Kimur13 小时前
Agent 面试速成清单
java·agent
人道领域13 小时前
【黑马点评日记02】Redis缓存优化:商户查询性能提升百倍
java·spring boot·spring·servlet·tomcat·intellij-idea
wuminyu13 小时前
专家视角看Java的线程是如何run起来的过程
java·linux·c语言·jvm·c++
zhangjw3413 小时前
第3篇:Java流程控制:if-else、switch、循环(for/while/do-while)全解析
java·开发语言
四斤年华13 小时前
关于SpringBoot在MultipartFile上java.nio.file.NoSuchFileException: /tmp/undertow
java·spring boot·nio
木井巳13 小时前
【递归算法】字母大小写全排列
java·算法·leetcode·决策树·深度优先
杰克尼13 小时前
天机学堂项目总结(day3~day4)
java·开发语言·spring
摇滚侠14 小时前
给我提供一个 sqlyog 下载地址
java