为什么需要监控,在哪些层次上监控,监控什么
监控是为复杂的分布式系统服务的,它收集跨不同的应用,不同的服务器的系统行为信息,可通过采样收集所需的性能指标,帮助分析性能问题,并在指标超过正常值时报警。
全链路监控
全链路监控的起源
全链路监控又名分布式监控系统,全链路追踪。
目前市面的全链路系统基本都是参考Google的Dapper(大规模分布式系统的跟踪系统)来做的。
论文
全链路监控的思想
APM(Application Performance Management)的核心思想是什么? 在应用服务各节点相互调用的时候,从中记录并传递一个应用级别的标记,这个标记可以用来关联各个服务节点之间的关系。比如两个应用服务节点之间使用HTTP作为传输协议的话,那么这些标记就会被加入到HTTP头中。可见如何传递这些标记是与应用服务节点之间使用的通讯协议有关的,常用的协议就相对容易加入这些内容,一些按需定制的可能就相对困难些,这一点也直接决定了实现分布式追踪系统的难度。
它通过探针自动收集所需的指标,并进行分布式追踪。通过这些调用链路以及指标,APM会感知应用间关系和服务间关系,并进行相应的指标统计。
如何衡量一个大规模集群的跟踪系统的优劣?
它应该满足低损耗、应用透明的、大范围部署这三个需求的。
全链路监控系统的功能
web应用过程:分析url调用过程中性能消耗原因,抓取超过阈值url的详细数据
数据库性能:支持多种数据库类型的监测,定位并追踪慢SQL语句问题