一、介绍
actuator 是真正去采集数据的模块
Micrometer 更像是一个适配器,将 actuator 采集到的数据适合给各种监控工具。
二、Acturator
HTTP 和 JMX
(一)监控方式
1. HTTP
EndPoint的三种请求方式:
@ReadOperation GET
@WriteOperation POST
@DeleteOperation DELETE
2. JMX监控
Java Management Extensions 管理拓展
架构设计
资源层:该层包含 MBean 及其可管理的资源,提供了实现 JMX 技术可管理资源的规范。
代理层:JMX核心。 MBean和应用程序间的中介。
远程管理层:能够让应用程序远程通过 Connector 和 Adapter 访问 MBean Server。
Mbean
含义:Managed bean,表示被管理的资源
分类:
标准MBean:命名以 MBean 结尾 / 实现接口
动态MBean:必须实现一个指定的接口
~~模型MBean~~:属于动态MBeans,这类MBean依靠基础数据类型来实现通用管理
~~开放MBean~~:属于动态MBeans,是完全可配置的,在运行期间进行自我声明~~
JConsole
通过 RMI 连接到 MBean Server
功能:实时热更新
通过JConsole修改日志的级别,输出不同的日志信息。logback实现了JMX
(Acturator的管理台SpringBoot Admin也是这个实现原理)
Jolokia
JMX监控最方便的方法是使用Jolokia,基于Http JMX管理Mbean,可替代JSR-160连接器。
<dependency>
<groupId>org.jolokia</groupId>
<artifactId>jolokia-core</artifactId>
<version>1.3.1</version>
</dependency>
Jolokia 是采用无类型、轻量级的 Json 传输数据。
Agent 模式:Agent调用本地MBeanServer 暴露 json 接口
(二)指标
指标名 | 含义 | HTTP端点 |
---|---|---|
actuator | 所有EnPoint的列表 (需引入spring HATEOAS) | |
health | 服务健康度 | http://localhost:8080/actuator/health |
metrics | 指标 | http://localhost:8080/metrics |
mappings | 全部的URI | http://localhost:8080/mappings |
env | 全部环境属性 | |
beans | 全部的Bean | |
trace | HTTP请求跟踪信息 | |
shutdown | 关闭当前应用 | 默认关闭 |
(三)自定义EndPoint
参考代码: 张从龙-gitee
(1)编写配置类
(2)定义EndPoint
(四)漏洞
开启权限认证
三、MicroMeter
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
集成Grafana
Grafana Dashboards图表模板「JVM(Micrometer)」(ID为4701)
四、参考资料
Prometheus入门教程(六):Spring Boot Actuator 实现应用监控
Micrometer 官方文档