APM
Contents
💠
-
- 1.1. OpenTelemetry
- 1.2. SkyWalking
- 1.3. Sentry
- 1.4. CAT
-
- 3.1. Prometheus
💠 2024-11-11 11:02:40
APM
Application performance Management
分布式链路追踪,技术或业务指标监控告警
核心为 可观测性(Observability) 监测(Monitoring)
Glowroot技术指标 Web SQL JVM JMX监控,agent方式支持单机和集群(存储使用cassandra)
Pinpoint JavaMelody Scouter Stagemonitor MoSKito
OpenTelemetry
CNCF组织的项目,脱离语言和技术架构,更有发展前景的可观测性项目。
SkyWalking
|
|
应用启动 java -javaagent:/opt/apache-skywalking-apm-bin/agent/skywalking-agent.jar -Dskywalking.agent.service_name=xxxtest -Dskywalking.collector.backend_service=127.0.0.1:11800 -jar application.jar
Sentry
感知应用异常:
UncaughtExceptionHandlerIntegration + LogAppender
CAT
感知应用异常:
- 实现日志框架的Appender基类,捕获Error到
Cat.logError
,并手动声明该Appender到配置文件中 - 手动设置静态的默认全局异常处理
Thread.setDefaultUncaughtExceptionHandler
,防止异常漏捕获。- SpringBoot项目里发生机率较小,因为基本都有Controller层的全局异常处理,且大部分请和逻辑从web端进入。
- 只有自定义线程池,Scheduler线程池,Junit等地方,未捕获运行时异常,才会走默认逻辑异常栈被输出到标准错误 System.err 中。
采集客户端
-
micrometer
门面框架类似于SLF4J 支持多种采集
Monitoring
技术指标监控告警,离业务指标比较远,例如 主机,数据库,容器,网络
Prometheus
通常和 Grafana 结合使用
Prometheus+Grafana监控SpringBoot项目JVM信息
JMX Exporter
JVM 接入 Prometheus手动声明HTTP
默认是拉模式,如果想通过推模式采集应用端信息需要借助 PushGateway 组件
Author Kuangcp
LastMod 2024-03-23