Spring Boot:未显示千分尺指标
Springboot: micrometer metrics not showing up
我正在编写我的第一个 spring 启动 (2.6.3) 应用程序。
这里是我使用的相关依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
我暴露了actuator所有的特性:
management:
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: '*'
info:
env:
enabled: true
所以我可以看到 url /actuator
.
列出的所有端点
现在,我在一些方法中添加了一些注释,如 @Counted
和 @Timed
,我调用了它们,但它们没有显示在 /actuator/metrics
.
我怎样才能解决这个问题?
在此先感谢您!
您是否知道 @Timed
注释仅在 @Controller
类 和 @RequestMapping
方法上受支持?
我不确定默认情况下是否支持 @Counted
。
编辑:
默认情况下 @Counted
注释不起作用。
要使其正常工作,您需要在上下文中添加 CountedAspect
。
此外,@Counter
auto-configuration 有一个未解决的问题:https://github.com/spring-projects/spring-boot/issues/17260
通过添加以下内容解决:
@Bean
CountedAspect countedAspect(MeterRegistry registry) {
return new CountedAspect(registry);
}
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
它也适用于 OpenAPI 委托。
我正在编写我的第一个 spring 启动 (2.6.3) 应用程序。
这里是我使用的相关依赖:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-to-slf4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
我暴露了actuator所有的特性:
management:
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: '*'
info:
env:
enabled: true
所以我可以看到 url /actuator
.
现在,我在一些方法中添加了一些注释,如 @Counted
和 @Timed
,我调用了它们,但它们没有显示在 /actuator/metrics
.
我怎样才能解决这个问题?
在此先感谢您!
您是否知道 @Timed
注释仅在 @Controller
类 和 @RequestMapping
方法上受支持?
我不确定默认情况下是否支持 @Counted
。
编辑:
默认情况下 @Counted
注释不起作用。
要使其正常工作,您需要在上下文中添加 CountedAspect
。
此外,@Counter
auto-configuration 有一个未解决的问题:https://github.com/spring-projects/spring-boot/issues/17260
通过添加以下内容解决:
@Bean
CountedAspect countedAspect(MeterRegistry registry) {
return new CountedAspect(registry);
}
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.13</version>
</dependency>
它也适用于 OpenAPI 委托。