-
引入场景
-
访问
http://localhost:8080/actuator/**
-
暴露所有监控信息为HTTP
management:
endpoints:
enabled-by-default: true # 默认开启所有监控端点
web:
exposure:
include: ‘*’ # 以web方式暴露所有端点
- 测试
http://localhost:8080/actuator/beans
http://localhost:8080/actuator/configprops
http://localhost:8080/actuator/metrics
http://localhost:8080/actuator/metrics/jvm.gc.pause
http://localhost:8080/actuator/endpointName
/detailPath
。。。。。。
https://github.com/codecentric/spring-boot-admin
.
=============================================================================
| ID | 描述 |
| — | — |
| auditevents
| 暴露当前应用程序的审核事件信息。需要一个AuditEventRepository组件
。 |
| beans
| 显示应用程序中所有Spring Bean的完整列表。 |
| caches
| 暴露可用的缓存。 |
| conditions
| 显示自动配置的所有条件信息,包括匹配或不匹配的原因。 |
| configprops
| 显示所有@ConfigurationProperties
。 |
| env
| 暴露Spring的属性ConfigurableEnvironment
|
| flyway
| 显示已应用的所有Flyway数据库迁移。 需要一个或多个Flyway
组件。 |
| health
| 显示应用程序运行状况信息。 |
| httptrace
| 显示HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应)。需要一个HttpTraceRepository
组件。 |
| info
| 显示应用程序信息。 |
| integrationgraph
| 显示Spring integrationgraph
。需要依赖spring-integration-core
。 |
| loggers
| 显示和修改应用程序中日志的配置。 |
| liquibase
| 显示已应用的所有Liquibase数据库迁移。需要一个或多个Liquibase
组件。 |
| metrics
| 显示当前应用程序的“指标”信息。 |
| mappings
| 显示所有@RequestMapping
路径列表。 |
| scheduledtasks
| 显示应用程序中的计划任务。 |
| sessions
| 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序。 |
| shutdown
| 使应用程序正常关闭。默认禁用。 |
| startup
| 显示由ApplicationStartup
收集的启动步骤数据。需要使用SpringApplication
进行配置BufferingApplicationStartup
。 |
| threaddump
| 执行线程转储。 |
如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:
| ID | 描述 |
| — | — |
| heapdump
| 返回hprof
堆转储文件。 |
| jolokia
| 通过HTTP暴露JMX bean(需要引入Jolokia,不适用于WebFlux)。需要引入依赖jolokia-core
。 |
| logfile
| 返回日志文件的内容(如果已设置logging.file.name
或logging.file.path
属性)。支持使用HTTPRange
标头来检索部分日志文件的内容。 |
| prometheus
| 以Prometheus服务器可以抓取的格式公开指标。需要依赖micrometer-registry-prometheus
。 |
最常用的Endpoint
-
Health:监控状况
-
Metrics:运行时指标
-
Loggers:日志记录
健康检查端点,我们一般用于在云平台,平台会定时的检查应用的健康状况,我们就需要Health Endpoint可以为平台返回当前应用的一系列组件健康状况的集合。
endpoint:
health:
show-details: always # 设置单个endpoint health显示详细信息
重要的几点:
-
health endpoint返回的结果,应该是一系列健康检查后的
一个汇总报告
(有一个不健康,就返回不健康) -
很多的健康检查默认已经自动配置好了,比如:数据库、redis等
-
可以很容易的添加自定义的健康检查机制
提供详细的、层级的、空间指标信息,这些信息可以被pull(主动推送)或者push(被动获取)方式得到;
-
通过Metrics对接多种监控系统
-
简化核心Metrics开发
-
添加自定义Metrics或者扩展已有Metrics
1、开启与禁用Endpoints
-
默认所有的Endpoint除过shutdown都是开启的。
-
需要开启或者禁用某个Endpoint。配置模式为 management.endpoint.< endpointName >.enabled = true
management:
endpoint:
beans:
enabled: true
- 或者禁用所有的Endpoint然后手动开启指定的Endpoint
management:
endpoints:
enabled-by-default: false
endpoint:
beans:
enabled: true
health:
enabled: true
2、暴露Endpoints
支持的暴露方式
-
HTTP:默认只暴露health和info Endpoint
-
JMX:默认暴露所有Endpoint
-
除过health和info,剩下的Endpoint都应该进行保护访问。如果引入SpringSecurity,则会默认配置安全访问规则
| ID | JMX | Web |
| — | — | — |
| auditevents
| Yes | No |
| beans
| Yes | No |
| caches
| Yes | No |
| conditions
| Yes | No |
| configprops
| Yes | No |
| env
| Yes | No |
| flyway
| Yes | No |
| health
| Yes | Yes |
| heapdump
| N/A | No |
| httptrace
| Yes | No |
| info
| Yes | Yes |
| integrationgraph
| Yes | No |
| jolokia
| N/A | No |
| logfile
| N/A | No |
| loggers
| Yes | No |
| liquibase
| Yes | No |
| metrics
| Yes | No |
| mappings
| Yes | No |
| prometheus
| N/A | No |
| scheduledtasks
| Yes | No |
| sessions
| Yes | No |
| shutdown
| Yes | No |
| startup
| Yes | No |
| threaddump
| Yes | No |
.
=======================================================================
@Component
public class MyHealthIndicator implements HealthIndicator {
@Override
public Health health() {
int errorCode = check(); // perform some specific health check
if (errorCode != 0) {
return Health.down().withDetail(“Error Code”, errorCode).build();
}
return Health.up().build();
}
}
构建Health
Health build = Health.down()
.withDetail(“msg”, “error service”)
.withDetail(“code”, “500”)
.withException(new RuntimeException())
.build();
management:
health:
enabled: true
show-details: always #总是显示详细信息。可显示每个模块的状态信息
@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {
//真实的检查方法
@Override
protected void doHealthCheck(Health.Builder builder) throws Exception {
//mongodb 获取连接进行测试
Map<String,Object> map = new HashMap<>();
if (1 == 1){
// builder.up();//健康
builder.status(Status.UP);
map.put(“count”,1);
map.put(“ms”,100);
}else {
// builder.down();//不健康
builder.status(Status.DOWN);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
5)]
[外链图片转存中…(img-nZ5Rb4oJ-1712170569015)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算