APM理解
APM(Application Performance Management/Monitor)通常包含三个分支:指标(Metrics)、追踪(Tracing)、日志(Logging),三者之间的关系[4]描述很到位。简单说Metrics是时序性的数值指标,通常用于服务监控;Tracing针对请求链,对理解复杂应用的拓扑结构,发现性能问题很有用;日志通常记录连续的事件信息。三个分支相互交融,业界的APM系统分别有所侧重。
- Metrics是传统系统监控手段,出现的比较早,典型的有Prometheus[5]、Ganglia[6]
- Tracing随着大型分布式的出现而兴起,以google的Dapper[7]为开山鼻祖,呈现百花齐放的状态。比较著名的有:国人开源的skywalking[1],韩国人开源的pinpoint[8],twitter的zipkin[9],美团的CAT[10]。[2]从基本原理、接入方式、功能对比、页面UI、数据存储多个方面进行了对比。[11]对skywalking、pinpoint进行了更细致的比较。
- Logging历史悠久,时下流行的为ELK stack[12]
TODO:…
参考资料
- [1]skywalking overview
- [2]应用监控之调用链跟踪选型之Zipkin、Pinpoint、SkyWalking、CAT
- [3]Skywalking分布式追踪与监控:起始篇
- [4]Metrics, tracing 和 logging 的关系
- [5]prometheus overview
- [6]Ganglia Monitor System
- [7]Dapper, a Large-Scale Distributed Systems Tracing Infrastructure
- [8]Pinpoint overview
- [9]zipkin architecture
- [10]CAT github
- [11]APM巅峰对决:skywalking . Pinpoint
- [12]ELK stack