57.3支持的度量标准
Spring Boot在适用时注册以下核心指标:
JVM指标,报告利用率:
各种内存和缓冲池
与垃圾收集有关的统计
线程利用率
加载/卸载的类数
CPU指标
文件描述符指标
卡夫卡消费者指标
Log4j2指标:记录每个级别记录到Log4j2的事件数
Logback指标:记录每个级别记录到Logback的事件数
正常运行时间指标:报告正常运行时间表和表示应用程序绝对启动时间的固定计量表
Tomcat指标
Spring Integration指标
57.3.1 Spring MVC指标
自动配置可以对Spring MVC处理的请求进行检测。当 management.metrics.web.server.auto-time-requests 为 true 时,将对所有请求进
行此检测。或者,当设置为 false 时,您可以通过将 @Timed 添加到请求处理方法来启用检测:
@RestController
@Timed
public class MyController {
@GetMapping("/api/people")
@Timed(extraTags = { "region", "us-east-1" })
@Timed(value = "all.people", longTask = true)
public List<Person> listPeople() { ... }
}
一个控制器类,用于在控制器中的每个请求处理程序上启用计时。
一种启用单个端点的方法。如果您在类上拥有它,则不需要这样做,但可以用于进一步自定义此特定端点的计时器。
使用 longTask = true 的方法为该方法启用长任务计时器。长任务计时器需要单独的度量标准名称,并且可以使用短任务计时器进行堆
叠。
默认情况下,使用名称 http.server.requests 生成指标。可以通过设置 management.metrics.web.server.requests-metric-name 属性
来自定义名称
57.3.2 Spring WebFlux度量标准
自动配置支持WebFlux控制器和功能处理程序处理的所有请求的检测。
默认情况下,会生成名称为 http.server.requests 的指标。您可以通过设置 management.metrics.web.server.requests-metric-name
属性来自定义名称。
默认情况下,与WebFlux相关的指标标记有以下信息:
标签 描述
exception 处理请求时抛出的任何异常的简单类名。
method 请求的方法(例如, GET 或 POST )
outcome 根据响应的状态代码请求结果。1xx是 INFORMATIONAL ,2xx是 SUCCESS ,3xx是 REDIRECTION ,4xx CLIENT_ERROR ,
5xx是 SERVER_ERROR
status 响应的HTTP状态代码(例如, 200 或 500 )
uri 如果可能,在变量替换之前请求URI模板(例如, /api/person/{id} )
要自定义标记,请提供实现 WebFluxTagsProvider 的 @Bean 。
57.3.3 Jersey服务器度量标准
自动配置支持对Jersey JAX-RS实现处理的请求进行检测。当 management.metrics.web.server.auto-time-requests 为 true 时,此检测将
针对所有请求进行。或者,当设置为 false 时,您可以通过将 @Timed 添加到请求处理方法来启用检测:
@Component
@Path("/api/people")
@Timed
public class Endpoint {
@GET
@Timed(extraTags = { "region", "us-east-1" })
@Timed(value = "all.people", longTask = true)
public List<Person> listPeople() { ... }
}
在资源类上,为资源中的每个请求处理程序启用计时。
在启用单个端点的方法上。如果您在类上拥有它,则不需要这样做,但可以用于进一步自定义此特定端点的计时器。
在使用 longTask = true 的方法上为该方法启用长任务计时器。长任务计时器需要单独的度量标准名称,并且可以使用短任务计时器进行
堆叠。
默认情况下,使用名称 http.server.requests 生成度量标准。可以通过设置 management.metrics.web.server.requests-metric-name
属性来自定义名称。
默认情况下,Jersey服务器指标标记有以下信息:
标签 描述
exception 处理请求时抛出的任何异常的简单类名。
method 请求的方法(例如, GET 或 POST )
outcome 根据响应的状态代码请求结果。1xx是 INFORMATIONAL ,2xx是 SUCCESS ,3xx是 REDIRECTION ,4xx CLIENT_ERROR ,
5xx是 SERVER_ERROR
status 响应的HTTP状态代码(例如, 200 或 500 )
uri 如果可能,在变量替换之前请求URI模板(例如, /api/person/{id} )
要自定义标记,请提供实现 JerseyTagsProvider 的 @Bean 。
57.3.4 HTTP客户端度量标准
Spring Boot Actuator管理 RestTemplate 和 WebClient 的工具。为此,您必须注入一个自动配置的构建器并使用它来创建实例:
RestTemplateBuilder RestTemplate
WebClient.Builder WebClient
也可以手动应用负责此仪器的定制器,即 MetricsRestTemplateCustomizer 和 MetricsWebClientCustomizer 。
默认情况下,使用名称 http.client.requests 生成指标。可以通过设置 management.metrics.web.client.requests-metric-name 属性
来自定义名称。
默认情况下,已检测客户端生成的度量标准使用以下信息进行标记:
method ,请求的方法(例如, GET 或 POST )。
uri ,变量替换之前的请求URI模板(如果可能)(例如, /api/person/{id} )。
status ,响应的HTTP状态代码(例如, 200 或 500 )。
clientName ,URI的主机部分。
要自定义标记,并根据您选择的客户端,您可以提供 @Bean 来实现 RestTemplateExchangeTagsProvider
或 WebClientExchangeTagsProvider 。RestTemplateExchangeTags 和 WebClientExchangeTags 中有便利的静态函数。
57.3.5缓存度量标准
自动配置允许在启动时使用前缀为 cache 的度量标准检测所有可用的 Cache 。缓存检测针对一组基本指标进行了标准化。此外,还提供了特定
于缓存的指标。
支持以下缓存库:
Caffeine
EhCache 2
Hazelcast
任何兼容的JCache(JSR-107)实现
度量标准由缓存的名称和从bean名称派生的 CacheManager 的名称标记。
只有启动时可用的缓存才会绑定到注册表。对于在启动阶段之后即时或以编程方式创建的缓存,需要显式注
册。CacheMetricsRegistrar bean可用于简化此过程。
57.3.6数据源度量标准
自动配置使用名为 jdbc 的度量标准启用所有可用 DataSource 对象的检测。数据源检测会生成表示池中当前活动,最大允许和最小允许连接的
计量器。这些仪表中的每一个都有一个以 jdbc 为前缀的名称。
度量标准也由基于bean名称计算的 DataSource 的名称标记。
默认情况下,Spring Boot为所有支持的数据源提供元数据; 如果您不喜欢自己喜欢的数据源,则可以添加额外
的 DataSourcePoolMetadataProvider beans。有关示例,请参阅 DataSourcePoolMetadataProvidersConfiguration 。
此外,Hikari特定的指标以 hikaricp 前缀公开。每个度量标准都由池名称标记(可以使用 spring.datasource.name 控制)。
57.3.7 Hibernate度量标准
自动配置允许使用名为 hibernate 的度量标准启用统计信息的所有可用Hibernate EntityManagerFactory 实例的检测。
度量标准也由bean名称派生的 EntityManagerFactory 名称标记。
要启用统计信息,标准JPA属性 hibernate.generate_statistics 必须设置为 true 。您可以在自动配置的 EntityManagerFactory 上启用
它,如以下示例所示:
spring.jpa.properties.hibernate.generate_statistics=true
57.3.8 RabbitMQ指标
自动配置将使用名为 rabbitmq 的度量标准启用所有可用RabbitMQ连接工厂的检测