监控服务组件 (Actuator)
组件作用
Actuator 组件是 Spring Boot 提供的监控服务组件,可以用于监控应用的运行状态、性能指标、日志、审计、指标搜集、HTTP跟踪等信息。
这个模块是一个采集应用内部信息暴露给外部的模块,因为暴露内部信息的特性,Actuator 也可以和一些外部的应用监控系统整合(Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等),然后通过Grafana、
这些监控系统提供了出色的仪表板,图形,分析和警报,可帮助你通过一个统一友好的界面,监视和管理你的应用程序。
Actuator 使用 Micrometer 与这些外部应用程序监视系统集成。这样一来,只需很少的配置即可轻松集成外部的监控系统,对业务代码没有侵入性。
(注意:框架4.1.0版之前使用的spring-cloud-component-actuator和rydeen-component-actuator已经废弃并删除,从4.1.0开始往后使用spring-boot-starter-actuator,并且以及全局引入,无需再单独引入。)
组件用法
组件的依赖已经在框架的rydeen-base-dependencies中全局引入,无需再单独引入,所有使用框架的服务都自带监控服务组件,直接在application.yml或bootstrap.yml中编写配置即可使用。
Actuator 集成了非常多的监控指标搜集,而我们最常用的配置如下:
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
# 健康检查
health:
enabled: true
# 显示详细信息
show-details: always
# 服务信息
metrics:
enabled: true
# 启用普罗米修斯端点
prometheus:
enabled: true
prometheus:
metrics:
export:
enabled: true
step: 10s
- management.endpoints.web.exposure.include:这个配置项用于指定哪些端点应该被暴露出来。默认情况下,它的值是*,表示所有的端点都会被暴露出来。如果你想关闭某个端点,你可以将它的值从*改为你想要暴露的端点的名称,用逗号分隔。
- management.endpoints.web.exposure.exclude:这个配置项用于指定哪些端点不应该被暴露出来。默认情况下,它的值是空字符串,表示没有端点被排除。如果你想关闭某个端点,你可以将它的值改为你想要关闭的端点的名称,用逗号分隔。
- management.endpoint.health.enabled=true:这个配置项用于指定是否启用健康检查。默认情况下,它的值是true,表示启用健康检查。如果你想关闭健康检查,你可以将它的值改为false。
- management.endpoint.health.show-details=always:这个配置项用于指定健康检查的详细信息。默认情况下,它的值是never,表示不显示详细信息。如果你想显示详细信息,你可以将它的值改为always。
- management.endpoint.metrics.enabled=true:这个配置项用于指定是否启用服务信息。默认情况下,它的值是true,表示启用服务信息。如果你想关闭服务信息,你可以将它的值改为false。
- management.endpoint.prometheus.enabled=true:这个配置项用于指定是否启用普罗米修斯端点。默认情况下,它的值是false,表示不启用普罗米修斯端点。如果你想启用普罗米修斯端点,你可以将它的值改为true。
- management.prometheus.metrics.export.enabled=true:这个配置项用于指定是否启用Prometheus监控系统。默认情况下,它的值是false,表示不启用Prometheus监控系统。如果你想启用Prometheus监控系统,你可以将它的值改为true。
- management.prometheus.metrics.export.step=10s:这个配置项用于指定Prometheus监控系统的步长。默认情况下,它的值是1m,表示步长是1分钟。如果你想改变步长,你可以将它的值改为你想要的步长。
请注意,management.endpoints.web.exposure.include和management.endpoints.web.exposure.exclude不可以同时配置为*,否则会导致所有端点都将不会暴露,并且也不推荐配置为*,因为这样会暴露出一些不安全的端点,比如env、beans、configprops、info、mappings、trace等。
更多配置
Actuator 还有很多其他的配置,比如:RabbitMQ健康检查、数据库连接池健康检查、MongoDB健康检查、Neo4j健康检查、Redis健康检查、Sentinel健康检查、elasticsearch健康检查、磁盘空间健康检查等,配置方法如下:
management:
health:
# 配置RabbitMQ健康检查
rabbit:
enabled: true
# 配置数据库连接池健康检查
db:
enabled: true
# 配置MongoDB健康检查
mongo:
enabled: true
# 配置Neo4j健康检查
neo4j:
enabled: true
# 配置Redis健康检查
redis:
enabled: true
# 配置Sentinel健康检查
sentinel:
enabled: true
# 配置elasticsearch健康检查
elasticsearch:
enabled: true
# 配置磁盘空间健康检查
diskSpace:
enabled: true
path: /data
threshold: 10MB