全链路监控的起源&解决方案
全链路监控的思想 APM(Application Performance Management)的核心思想是什么? 在应用服务各节点相互调用的时候,从中记录并传递一个应用级别的标记,这个标记可以用来关联各个服务节点之间的关系。 比如两个应用服务节点之间使用HTTP作为传输协议的话,那么这些标记就会被加入到HTTP头中。 可见如何传递这些标记是与应用服务节点之间使用的通讯协议有关的,常用的协议就相对容易加入这些内容,一些按需定制的可能就相对困难些,这一点也直接决定了实现分布式追踪系统的难度。 它通过探针自动收集所需的指标,并进行分布式追踪。 通过这些调用链路以及指标,APM会感知应用间关系和服务间关系,并进行相应的指标统计。 如何衡量一个大规模集群的跟踪系统的优劣? 它应该满足 低损耗 、 应用透明的 、 大范围部署 这三个需求的。 全链路监控系统的功能 web应用过程: 分析url调用过程中性能消耗原因,抓取超过阈值url的详细数据 数据库性能: 支持多种数据库类型的监测,定位并追踪慢SQL语句问题 错误分析: 记录错误发生时的详细信息,统计应用错误率,定位问题具体至代码行 外部API调用: 可以监测所有服务端应用外部调用API的耗时,并进行汇总统计 线程剖析: 可以实现生产环境下实时在线的线程剖析,可在运行时了解代码性能 NoSQL分析: 实时监控Memcache,