总结:Springboot 2.1监控Actuator相关

一、介绍

Actuator是Springboot提供的用来对应用系统进行监控的功能模块,借助于Actuator开发者可以很方便地对应用系统某些监控指标进行查看、统计等。

Actuator 的核心是端点Endpoint。

Endpoint可以让我们监视应用程序并与其交互。SpringBoot包含许多内置端点,并允许您添加自己的端点。

我们可以启用或禁用每个端点,启用或禁用端点控制是否创建端点并且其bean存在于应用程序上下文中。 要进行远程访问,还必须通过JMX或HTTP公开端点。大多数断点HTTP访问默认是关闭的。

二、启用与暴露的区别

启用端点:会创建对应的bean并进行数据采集(但是未必会暴露)

暴露:是在启用的前提下,暴露是指对外可以访问到这些数据

三、endpoints端点介绍

1、端点介绍

ID描述默认情况下是否启用
auditevents公开当前应用程序的审核事件信息。Yes
beans显示应用程序中所有Spring bean的完整列表。Yes
caches公开可用的缓存Yes
conditions显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。Yes
configprops显示所有@ConfigurationProperties的有序列表。Yes
env公开Spring的ConfigurableEnvironment中的属性Yes
flyway显示已应用的任何Flyway数据库迁移。Yes
health显示应用健康信息。Yes
httptrace显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 – 响应交换)。Yes
info显示任意应用信息。Yes
integrationgraph显示Spring集成图。Yes
loggers显示和修改应用程序中日志记录器的配置。Yes
liquibase显示已应用的任何Liquibase数据库迁移。Yes
metrics显示当前应用程序的“指标”信息。Yes
mappings显示所有@RequestMapping路径的有序列表。Yes
scheduledtasks显示应用程序中的计划任务。Yes
sessions允许从Spring Session支持的会话存储中检索和删除用户会话。 使用Spring Session对响应式Web应用程序的支持时不可用。Yes
shutdown允许应用程序正常关闭。No
threaddump执行线程转储。Yes

如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:

ID描述默认情况下是否启用
heapdump返回一个hprof堆转储文件。Yes
jolokia通过HTTP公开JMX bean(当Jolokia在类路径上时,不适用于WebFlux)。Yes
logfile返回日志文件的内容(如果已设置logging.file或logging.path属性)。 支持使用HTTP Range标头来检索部分日志文件的内容。Yes
prometheus以Prometheus服务器可以抓取的格式公开指标。Yes

2、启用端点

要配置端点的启用,请使用management.endpoint.xxx.enabled属性。 以下示例启用关闭端点:

management.endpoint.shutdown.enabled=true

如果您希望端点启用是选择加入而不是选择退出,请将management.endpoints.enabled-by-default属性设置为false,并使用启用了各个端点的属性重新加入。以下示例启用info端点并禁用所有其他端点:

management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true

四、端点的默认暴露规则

由于端点可能包含敏感信息,因此应仔细考虑何时公开它们。 下表显示了内置端点的默认暴露规则:

IDJMXWeb
auditeventsYesNo
beansYesNo
cachesYesNo
conditionsYesNo
configpropsYesNo
envYesNo
flywayYesNo
healthYesYes
heapdumpN/ANo
httptraceYesNo
infoYesYes
integrationgraphYesNo
jolokiaN/ANo
logfileN/ANo
loggersYesNo
liquibaseYesNo
metricsYesNo
mappingsYesNo
prometheusN/ANo
scheduledtasksYesNo
sessionsYesNo
shutdownYesNo
threaddumpYesNo

要更改公开的端点,请使用以下特定于技术的包含和排除属性:

PropertyDefault
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include*
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.includeinfo, health

案例:

#endpoints配置
management.endpoints.web.exposure.include=info,health,metrics,prometheus,threaddump,mappings,beans,loggers,autoconfig
management.metrics.tags.application=${spring.application.name}

*可用于选择所有端点。

例如:要通过HTTP公开除env和beans端点之外的所有内容:

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

参考:5.2 Endpoints - Spring Boot 参考文档 v2.1 - 文江博客

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值