Actuator

Spring Boot 包括 Spring Boot Actuator。本节将回答经常在使用 Actuator 时出现的疑问。

Change the HTTP Port or Address of the Actuator Endpoints

在独立应用程序中,执行器的 HTTP 端口默认为与主 HTTP 端口相同。要使应用程序监听不同的端口,请设置外部属性:configprop:management.server.port[]。要监听完全不同的网络地址(例如,当有用于管理的内部网络和用于用户应用程序的外部网络时),还可以将 management.server.address 设置为服务器能够绑定的有效 IP 地址。

有关详细信息,请参阅 {code-spring-boot-actuator-autoconfigure-src}/web/server/ManagementServerProperties.java[ManagementServerProperties] 源代码和 “Customizing the Management Server Port” 中的 “Production-ready features” 部分。

Customize the '`whitelabel’ Error Page

Spring Boot 会安装一个“空白”错误页面,如果您在浏览器客户端遇到服务器错误,会看到该错误(使用 JSON 和其他媒体类型的机器客户端应该会看到带有正确错误代码的合理响应)。

设置 server.error.whitelabel.enabled=false 以关闭默认错误页面。这样做将恢复您正在使用的 Servlet 容器的默认设置。请注意,Spring Boot 仍会尝试解决错误视图,因此您应该添加自己的错误页面,而不是完全禁用它。

使用您自己的错误页面覆盖错误页面取决于您使用的模板化技术。例如,如果您使用 Thymeleaf,则可以添加一个 error.html 模板。如果您使用 FreeMarker,则可以添加 error.ftlh 模板。总的来说,您需要一个 View,其解析名称为 error,或一个 @Controller,其处理 /error 路径。除非您替换了某些默认配置,否则您应该会在 ApplicationContext 中找到 BeanNameViewResolver,因此,名为 error@Bean 将是一种实现方式。有关更多选项,请参见 {code-spring-boot-autoconfigure-src}/web/servlet/error/ErrorMvcAutoConfiguration.java[ErrorMvcAutoConfiguration]。

另请参阅 “Error Handling” 部分,了解如何在 Servlet 容器中注册处理程序的详细信息。

Customizing Sanitization

要控制清除,请定义一个 SanitizingFunction bean。函数被调用的 SanitizableData 提供对密钥和值以及它们的 PropertySource 的访问权限。这使您可以(例如)清除来自特定属性源的每个值。每个 SanitizingFunction 会按顺序调用,直到函数更改可清除数据的的价值。

Map Health Indicators to Micrometer Metrics

Spring Boot 健康指示器返回 Status 类型来指示整个系统的健康状况。如果您希望监视或警报特定应用程序的健康状况,可以使用 Micrometer 将这些状态导出为指标。Spring Boot 默认情况下使用状态码 “UP”、“DOWN”、“OUT_OF_SERVICE” 和 “UNKNOWN”。要导出这些,您需要将这些状态转换为一些数字,以便它们可以与 Micrometer Gauge 一起使用。

以下示例展示了编写此类导出器的一种方法: