使用 Spring Boot Actuator 监控 API

17 Jan 2025 | 3 分钟阅读

Spring Boot Actuator

Spring Boot 提供了 actuator 来有效地监控和管理应用程序。它是一个具有 HTTP 端点(资源所在的位置)的工具。 它是 Spring Boot 的一个子项目。它只需少量的工作即可将多个生产级服务添加到我们的应用程序。

如果服务的性能下降或出现故障,我们应该尽快知道原因。我们需要围绕 API 构建监控,尤其是在构建微服务时。 Spring Boot 具有强大的支持来提供监控。

要使用生产就绪功能,我们将在 pom.xml 中添加 spring-boot-actuator 依赖项。

让我们在 Spring Boot 项目中添加监控服务。

步骤 1: 打开 pom.xml 并添加以下依赖项

Spring Boot Starter Actuator: 它为您的服务提供大量的监控设施。

Spring Data Rest HAL Browser: HAL 使我们的 API 可导出,并且可以从 API 本身轻松发现其文档。

超文本应用程序语言 (HAL) 是一种简单的语言,它提供了一种在 API 中资源之间进行超链接的一致且简单的方法。 spring boot starter actuator 实际上采用 HAL 格式。 HAL 浏览器搜索 API 并识别链接。 它会在屏幕上显示链接,以便我们可以轻松浏览 API。

步骤 2: 重新启动应用程序。

步骤 3: 在浏览器中键入 URL localhost:8080/actuator,然后按 Enter 键。 如果不起作用,请使用 URL localhost:8080/application

它启动 actuator,显示三个 URL:self、health 和 info。

当我们单击 health URL 时,它会显示应用程序的运行状况。 在下图中,状态 up 表示应用程序正在运行。

Monitoring APIs with Spring Boot Actuator

当我们单击 info URL 时,它会显示应用程序的信息。 一对空白花括号表示没有可用信息。

Monitoring APIs with Spring Boot Actuator

要启用信息,我们需要配置属性。

  • 打开 application.properties 文件并启用 web exposure
  • 重新启动应用程序。
  • 使用 URL localhost:8080/actuator 重新启动 actuator。

它显示了很多 URL。

HAL 浏览器

要访问 HAL 浏览器,请在浏览器中键入 localhost:8080,然后按 Enter 键。

Monitoring APIs with Spring Boot Actuator

现在我们可以通过 HAL 浏览器访问 actuator。

在浏览器的文本框中键入 /actuator,然后单击 Go 按钮。

Monitoring APIs with Spring Boot Actuator

它显示了与 actuator 相关的所有内容。 actuator 中最重要的是 beans

Monitoring APIs with Spring Boot Actuator

当我们单击 bean 的箭头时,它会显示在 spring boot 项目中配置的所有 bean。

Monitoring APIs with Spring Boot Actuator

如果我们想检查应用程序的状态,我们可以单击 health 链接。

Monitoring APIs with Spring Boot Actuator

它显示应用程序的运行状况。

Monitoring APIs with Spring Boot Actuator

actuator 中还有另一个名为 metrics 的链接。 它显示有效指标的列表。

Monitoring APIs with Spring Boot Actuator

假设我们想知道应用程序使用了多少内存。 我们已访问 /jvm.memory.max

Monitoring APIs with Spring Boot Actuator

在下图中,value 指示应用程序使用的最大内存。

Monitoring APIs with Spring Boot Actuator

actuator 中有两个重要的链接 httptracemapping

Monitoring APIs with Spring Boot Actuator

httptrace 显示了我们之前执行的所有请求。 我们可以看到先前执行的请求的所有详细信息,如下所示

Monitoring APIs with Spring Boot Actuator

mapping 显示了映射到 URL 的所有不同的内容。 每当我们创建 Web 服务或 Web 应用程序时,我们都会映射很多 URL。

Monitoring APIs with Spring Boot Actuator

在本节中,我们学习了可以使用 actuator 做什么。