15.1 介绍 Actuator

在机器设备中, Actuator 指驱动器,是负责控制和移动机器的机械装置。在 Spring Boot 应用程序中,Spring Boot Actuator 扮演同样的角色,使我们能够看到正在运行的应用程序的内部。在某种程度上,控制应用程序的行为。

使用 Actuator 公开的 endpoint,我们可以获取正在运行的 Spring Boot 应用程序的一些情况:

  • 应用程序环境中有哪些配置属性可用?
  • 应用程序中各种包的日志记录级别是什么?
  • 应用程序现在消耗了多少内存?
  • 给定的 HTTP endpoint 被请求了多少次?
  • 应用程序及其协作的其他服务的健康状况如何?

要在 Spring Boot 应用程序中启用 Actuator,只需添加 Actuator 的依赖。在 Spring Boot 应用程序 pom.xml 文件中,添加如下部分:

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

一旦 Actuator 依赖添加到了项目构建中,应用程序就有了几个现成的 endpoint,包括表 16.1 中所描述的这些。

表 15.1:窥视 Spring Boot 应用程序内部,并操纵其运行状态的 Actuator endpoint

HTTP 方法 路径 描述 是否默认启用
GET /auditevents 生成已触发的任何审核事件的报告。
GET /beans 描述 Spring 应用程序上下文中的所有 bean。
GET /conditions 对于在应用程序上下文中创建的 bean,自动配置条件校验通过或失败的报告。
GET /configprops 描述所有配置属性以及当前值。
GET, POST, DELETE /env 生成 Spring 应用程序可用的所有属性源及其属性的报告。
GET /env/{toMatch} 描述单个环境属性的值。
GET /health 返回应用程序的聚合运行状况和(可能)外部相关应用程序的运行状况。
GET /heapdump 下载堆转储信息。
GET /httptrace 生成最近 100 个请求的跟踪记录。
GET /info 返回开发人员自定义的应用程序信息。
GET /loggers 生成应用程序中包的列表,及其配置的有效日志级别。
GET,POST /loggers/{name} 返回某个 logger 的有效日志记录级别,并可以通过 POST 请求设置日志级别。
GET /mappings 生成关于所有 HTTP 映射及其相应处理方法的报告。
GET /metrics 返回所有度量指标类别的列表。
GET /metrics/{name} 返回某度量的多维值的集合。
GET /scheduledtasks 列出所有计划任务 否。
GET /threaddump 返回所有应用程序线程的报告。

除了基于 HTTP 的 endpoint,表 15.1 中的所有 Actuator 的 endpoint,除 /heapdump 以外,同时暴露为 JMX MBean。我们将在第 17 章讨论 JMX 的 Actuator。

results matching ""

    No results matching ""