指标监控

Spring Boot Actuator

1、将应用程序推送到生产环境时,监控和管理应用程序,可以选择使用 HTTP 端点或 JMX 来管理和监视应用程序,审核,运行状况和指标收集也可以自动应用到应用程序

2、引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

 

 

执行器端点

1、访问:http://localhost:8080/actuator/**

2、类型

(1)与技术无关的端点

ID 描述 默认情况下启用

auditevents

公开当前应用程序的审核事件信息。

需要一个AuditEventRepository组件

Yes

beans

显示应用程序中所有Spring beans的完整列表。

Yes

caches

暴露可用的缓存。

Yes

conditions

显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。

Yes

configprops

显示所有@ConfigurationProperties的整理列表。

Yes

env

公开 Spring ConfigurableEnvironment的属性。

Yes

flyway

显示已应用的任何Flyway数据库迁移。

需要一个或多个Flyway组件。

Yes

health

显示应用程序运行状况的健康信息。

Yes

httptrace

显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 - 响应交换)。

需要一个HttpTraceRepository组件。

Yes

info

显示任意应用信息。

Yes

integrationgraph

显示Spring Integration图表。

需要依赖spring-integration-core

Yes

loggers

显示和修改应用程序中记录器的配置。

Yes

liquibase

显示已应用的任何Liquibase数据库迁移。

需要一个或多个Liquibase组件。

Yes

metrics

显示当前应用程序的“指标”信息。

Yes

mappings

显示所有@RequestMapping路径的整理列表。

Yes

scheduledtasks

显示应用程序中的计划任务。

Yes

sessions

允许从支持Spring Session的会话存储中检索和删除用户会话。使用Spring Session对响应式Web应用程序的支持时不可用。

Yes

shutdown

允许应用程序正常关闭。

需要使用SpringApplication进行配置BufferingApplicationStartup

No

threaddump

执行线程转储。

Yes

(2)Web 应用程序(Spring MVC,Spring WebFlux 或 Jersey),则可以使用以下附加端点

ID 描述 默认情况下启用

heapdump

返回hprof堆转储文件。

Yes

jolokia

通过HTTP公开JMX beans(当Jolokia在类路径上时,不适用于WebFlux)。

需要引入依赖jolokia-core

Yes

logfile

返回日志文件的内容(如果已设置logging.filelogging.path属性)。支持使用HTTP Range标头来检索部分日志文件的内容。

Yes

prometheus

以可由Prometheus服务器抓取的格式公开指标。

需要依赖micrometer-registry-prometheus

Yes

3、暴露情况

(1)默认

ID JMX Web

auditevents

Yes

No

beans

Yes

No

caches

Yes

No

conditions

Yes

No

configprops

Yes

No

env

Yes

No

flyway

Yes

No

health

Yes

Yes

heapdump

N/A

No

httptrace

Yes

No

info

Yes

Yes

integrationgraph

Yes

No

jolokia

N/A

No

logfile

N/A

No

loggers

Yes

No

liquibase

Yes

No

metrics

Yes

No

mappings

Yes

No

prometheus

N/A

No

scheduledtasks

Yes

No

sessions

Yes

No

shutdown

Yes

No

threaddump

Yes

No

(2)更改:include 属性列出公开端点 ID,exclude 属性列出不应公开端点 ID,exclude 属性优先 include 属性,include、exclude 属性都可以配置端点 ID 列表;* 可用于选择所有端点

Property 默认

management.endpoints.jmx.exposure.exclude

 

management.endpoints.jmx.exposure.include

*

management.endpoints.web.exposure.exclude

 

management.endpoints.web.exposure.include

info, health

4、开启 / 禁用

(1)默认情况下,启用除shutdown之外的所有端点

(2)开启某个端点

management:
  endpoint:
    <id>:
      enabled: true

(3)禁用某个端点

management:
  endpoint:
    <id>:
      enabled: false

(4)开启所有端点

management:
  endpoints:
    enabled-by-default: true

(5)禁用所有端点

management:
  endpoints:
    enabled-by-default: false

5、Health Endpoint

(1)健康检查端点

(2)一般用于云平台,平台定时检查应用的健康状况,需要 Health Endpoint 可以为平台返回当前应用的一系列组件健康状况的集合

(3)返回的结果,应该是一系列健康检查后的一个汇总报告

(4)很多的健康检查默认自动配置,如:数据库、Redis 等

(5)可以很容易的添加自定义的健康检查机制

(6)UP:健康;DOWN:不健康

(7)所有组件为 UP,应用程序才为 UP;任一组件为 DOWN,应用程序为 DOWN

6、Metrics Endpoint

(1)提供详细的、层级的、空间指标信息,这些信息可以被 pull(主动推送)或者 push(被动获取)方式获取

(2)通过 Metrics 对接多种监控系统

(3)简化核心 Metrics 开发

(4)添加自定义 Metrics 或扩展已有 Metrics

 

可视化监控工具

1、引入 Spring Boot Admin Server 启动器依赖

<!-- 监控功能 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.7.0</version>
</dependency>

<!-- Web场景 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2、主配置类添加 @EnableAdminServer,开启 Spring Boot Admin Server 功能

3、引入 Spring Boot Admin Client 依赖

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.7.0</version>
</dependency>

4、保证端点的安全性

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

5、通过配置 Spring Boot Admin Server 的 URL,启用 SBA 客户端

#注册Spring Boot Admin Server的URL
spring:
  boot:
    admin:
      client:
        url: http://localhost:8080
posted @   半条咸鱼  阅读(133)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示