生产级功能
Spring Boot 包含了许多额外的功能,帮助你在将应用程序推送到生产环境时进行监控和管理。你可以选择通过使用 HTTP 端点或 JMX 来管理和监控你的应用程序。审计、健康检查和指标收集也可以自动应用到你的应用程序中。
章节摘要
📄️ 启用生产就绪功能
spring-boot-actuator 模块提供了 Spring Boot 的所有生产就绪特性。推荐的启用这些特性的方式是通过添加 spring-boot-starter-actuator starter 依赖。
📄️ 接口端点
Actuator 端点允许您监控和与应用程序进行交互。Spring Boot 包含许多内置端点,并且允许您添加自己的端点。例如,health 端点提供了基本的应用程序健康信息。
📄️ 通过 HTTP 进行监控和管理
如果你正在开发一个 Web 应用程序,Spring Boot Actuator 会自动配置所有启用的端点,以便通过 HTTP 公开。默认的约定是使用端点的 ID,并以 /actuator 作为 URL 路径的前缀。例如,health 端点会被公开为 /actuator/health。
📄️ 通过 JMX 进行监控和管理
Java 管理扩展(JMX)提供了一种标准机制来监控和管理应用程序。默认情况下,此功能未启用。你可以通过将 spring.jmx.enabled 配置属性设置为 true 来启用它。Spring Boot 将最合适的 MBeanServer 暴露为一个 ID 为 mbeanServer 的 bean。任何使用 Spring JMX 注解(@org.springframework.jmx.export.annotation.ManagedResource、@ManagedAttribute 或 @ManagedOperation)标注的 bean 都会暴露给它。
📄️ 可观测性
可观测性是指从外部观察运行中系统内部状态的能力。它由三大支柱组成:日志记录、指标和追踪。
📄️ 日志记录器
Spring Boot Actuator 包含在运行时查看和配置应用程序日志级别的功能。你可以查看整个列表或单个记录器的配置,该配置由显式配置的日志级别以及日志框架赋予的有效日志级别组成。这些级别可以是以下之一:
📄️ 指标
Spring Boot Actuator 为 Micrometer 提供了依赖管理和自动配置,Micrometer 是一个支持多种监控系统的应用指标门面,包括:
📄️ 追踪
Spring Boot Actuator 为 Micrometer Tracing 提供了依赖管理和自动配置,Micrometer Tracing 是一个用于流行追踪器库的门面。
📄️ 审计
一旦启用了 Spring Security,Spring Boot Actuator 便提供了一个灵活的审计框架,用于发布事件(默认情况下,包括“认证成功”、“认证失败”和“访问被拒”异常)。这一特性对于生成报告以及基于认证失败实施锁定策略非常有用。
📄️ 记录 HTTP 交换
你可以通过在应用程序配置中提供一个类型为 HttpExchangeRepository 的 Bean 来启用 HTTP 交换记录的捕获。为了方便,Spring Boot 提供了 InMemoryHttpExchangeRepository,默认情况下,它会存储最近的 100 个请求-响应交换。与追踪解决方案相比,InMemoryHttpExchangeRepository 功能有限,我们建议仅在开发环境中使用它。对于生产环境,我们建议使用生产级的追踪或可观测性解决方案,例如 Zipkin 或 OpenTelemetry。或者,你也可以创建自己的 HttpExchangeRepository。
📄️ 进程监控
在 spring-boot 模块中,你可以找到两个用于创建文件的类,这些文件通常对进程监控非常有用:
📄️ Cloud Foundry 支持
Spring Boot 的 actuator 模块包含了额外的支持,这些支持在你部署到兼容的 Cloud Foundry 实例时会被激活。/cloudfoundryapplication 路径为所有 @Endpoint bean 提供了一条替代的安全路由。