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