微服务架构之Spring Boot(七十九)

2022-05-23 15:45:56 浏览数 (1)

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连接工厂的检测

0 人点赞