SpringBoot—Actuator

2022-03-31 08:07:49 浏览数 (1)

使用

代码语言:javascript复制
<dependencies> 
    <!--actuator-->
	<dependency> 
		<groupId> org.springframework.boot </groupId> 
		<artifactId> spring-boot-starter-actuator </artifactId> 
	</dependency> 
    <!--web访问功能-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
	<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
</dependencies>
依赖

代码语言:javascript复制
配置application.yaml
server:
  port: 8080
  servlet:
    context-path: /example
 
# 配置登录用户名和密码
spring:
  security:
    user:
      name: tl
      password: tl
management:
  # 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离
  server:
    port: 8090
    servlet:
      context-path: /sys
  # 端点健康情况,默认值"never",设置为"always"可以显示硬盘使用情况和线程情况
  endpoint:
    health:
      show-details: always
  # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点
  endpoints:
    web:
      exposure:
        include: '*'
 

  1. 通过浏览器访问即可 通过浏览器访问不同的Endpoints,可显示不同的监控内容,例如:访问
代码语言:javascript复制
{
    "status":"UP",
    "components":{
        "diskSpace":{
        "status":"UP",
        "details":{
            "total":248575422464,
            "free":211287887872,
            "threshold":10485760,
            "exists":true
        }
        },
        "ping":{
            "status":"UP"
        }
    }
}

Endpoints

  Actuator创建了所谓的endpoint来暴露HTTP或者JMX来监控和管理应用。例如,/health的endpoint,提供基本的应用程序健康信。。/beans展示了所有 Spring 管理的Bean,metrics 展示JVM内存使用情况、系统CPU使用情况、打开的文件等等。/loggersendpoint展示了应用的日志和可以让你在运行时改变日志等级。

  请求时其中端点的 ID 和前缀/actuator 被映射到 URL。例如,默认情况下,health端点映射到 /actuator/health

ID

描述

默认启用

auditevents

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

是的

beans

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

是的

conditions

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

是的

configprops

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

是的

env

从 Spring 的ConfigurableEnvironment.

是的

flyway

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

是的

health

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

是的

httptrace

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

是的

info

显示任意应用程序信息。

是的

loggers

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

是的

liquibase

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

是的

metrics

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

是的

mappings

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

是的

scheduledtasks

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

是的

sessions

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

是的

shutdown

让应用程序正常关闭。

threaddump

执行线程转储。

是的

  如果应用程序是 Web 应用程序(Spring MVC、Spring WebFlux 或 Jersey),还可以使用以下附加端点:

ID

描述

默认启用

heapdump

返回一个 GZip 压缩的hprof堆转储文件。

是的

jolokia

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

是的

logfile

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

是的

prometheus

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

是的

Endpoints 启用

  在默认情况下,启用了除shutdown外的所有Endpoints,可以自行设置Endpoints的启用,使用如下格式

代码语言:javascript复制
management.endpoint.<id>.enabled =true

暴露EndPoints

  在默认情况下,内置Endpoints只暴露了healthinfo,可以在配置文件中设置需启用的端点actuator endpoint

  • Http方式 ## 默认情况下management.endpoints.web.exposure.include=health,info## 设置"*"代表暴露所有可访问的端点management.endpoints.web.exposure.include=*## exclude可以设置不暴露的management.endpoints.web.exposure.exclude=
  • JMX方式 ## 默认情况下management.endpoints.jmx.exposure.include=health,info## 设置"*"代表暴露所有可访问的端点management.endpoints.jmx.exposure.include=*## exclude可以设置不暴露的management.endpoints.jmx.exposure.include=。

0 人点赞