监控
springboot actuator
查看端点(endpoints)
- 在项目里导入依赖包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 启动项目,访问
/actuator
,即可看到暴露的端点以及对应的url
{
"_links":{
"self":{
"href":"http://localhost:8081/actuator",
"templated":false
},
"health":{
"href":"http://localhost:8081/actuator/health",
"templated":false
},
"health-path":{
"href":"http://localhost:8081/actuator/health/{*path}",
"templated":true
}
}
}
- 如果想要暴露其他的endpoints,可以在配置文件配置
management:
endpoints:
web:
exposure:
#直接全部暴露,如果想部分的话多个之间用逗号隔开
include: "*"
重要端点(endpoints)
/health
-
url:
/actuator/health
-
/health端点会聚合程序的健康指标,来检查程序的健康情况,如redis,rabbitmq、db等组件,当你的项目有依赖对应组件的时候,这些健康指示器就会被自动装配,继而采集对应的信息
-
默认是不公开建康信息的细节,只能看到程序有没有上线,如果想看到健康信息的详细内容,需要设置配置
management:
endpoint:
health:
##always:表示对所有用户暴露详细信息
##never(默认):不展示详细信息,只显示up或down的状态
#when-authorized:详细信息将会展示给通过谁的用户,授权的角色可以通过management.endpoint.health.roles配置
show-details: always
/metrics
-
url:
/actuator/metrics
-
/metrics端点用来返回当前应用的各类重要试题指标,比如:内存信息、线程信息、垃圾回收信息、数据库连接池等
-
访问上面的url,只是给出指标的列表,访问具体哪个指标信息,可以这样:
/actuator/metrics/{指标名}
/loggers
-
url:
/actuator/loggers
-
/logger端点暴露了我们程序内部配置的所有logger信息
- 查看某一个组件服务或某一个应用的日志级别,并对其进行实时的变量
- looogers endpoint 同时提供了在应用运行时改变日志级别的能力,可以发一个post请求即可
/actuator/loggers/{logName}
,json入参{"configuredLevel":"DEBUG"}
,如果想弄回默认级别,这个入参就传个空字符串就行
/beans
-
url:/actuator/beans
-
返回spring窗口中所有bean的别名、类型、是否单例、依赖等信息
/heapdump
- url:/actuator/heapdump
- 访问这个会返回一个jvm的堆文件heapdump,可以用jdk自带的jvm监控工具(java的bin目录下的jvisualvm)查看内存快照
/threaddump
- url:/actuator/threaddump
- 查看线程情况,展示了线程名、线程ID、线程状态、是否等待锁资源、线程堆栈等信息
springboot集成prometheus、grafana、alertmanager
简单介绍
- prometheus:系统和服务监控软件和时间序列数据库
- grafana:数据看板工具
- alertmanager:prometheus官方提供的告警工具,可以连接钉钉、企业微信、邮箱等
安装
略,都是