8.携程架构实践 --- 监控

Posted enlyhua

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了8.携程架构实践 --- 监控相关的知识,希望对你有一定的参考价值。

第8 章 监控 
8.1 指标监控和告警系统Hickwall 
	Hickwall是xc在 Metrics 方面的主要监控系统,可以提供指标数据的采集,存储,展示和告警。

	8.1.1 指标监控的应用和挑战 
		指标监控系统是一个对时序指标进行采集,分析和处理的系统,和日志系统不同的是,它并不记录时间或请求的详细信息,而是以数值的形式记录某个指标
	随着时间的变化情况,这些数值被称为时间序列。

		指标监控系统一般有以下几个应用场景:
			1.容量规划
			2.性能分析
			3.紧急告警
			4.故障分析

		根据指标的来源和使用场景,一般把监控的指标分为 
			1.系统层指标
				包括IDC的温湿度,各种设备的固件运行情况,网络设备的接口状态流量丢包,物理机虚拟机容器的cpu内存等,也包括mysql,redis等基础服务的
			状态。

			2.应用层指标
				框架埋点,如3个黄金指标(请求量,响应时间和错误数),也包括用户自定义埋点,如某个模块中的内存队列长度。

			3.业务层指标
				如 订单量等全局的,直接影响公司业绩的指标。

	8.1.2 指标模型的选择 
	8.1.3 Hickwall 架构 

8.2 开源分布式应用监控系统CAT 
	8.2.1 为什么需要应用监控系统 
		一次简单的API调用,其背后可能隐藏了数以百计的对下游服务和存储的访问。

	8.2.2 应用监控系统的特点 
		应用监控应该满足哪些基本条件:
			1.监控范围必须覆盖足够的应用
			2.监控行为必须是长期不间断的进行

		应用监控系统的链路追踪功能设计目标,主要包含以下几个方面:
			1.客户端负载低
			2.业务应用级别的透明性
			3.服务端可水平扩展
			4.服务端高可用

		应用监控的作用域:
			1.Trace
				一次完整的事务调用请求。Trace最大的特点是,它有上下文环境,通常来说,Trace会由一个唯一的ID进行标识,一次Trace可能由多个不同的事务和标志事件(Event)组成。
			2.Log
				日志,代表用户主动记录的离散数据。
			3.Metric
				用户定义的,关心的或者通用的一些运行时指标。
			4.Report
				报表。

	8.2.3 客户端实现解析 
		CAT 的 Trace 功能设计思路来源于 Google Dapper 系统的相关论文,具体操作步骤如下:
			1.每一个Trace在CAT内部都被称为 Message Tree,由树形结构组织的Transaction及Event组成,每一个Trasaction代表某次具有特定耗时的调用(同步或者
			异步,如一次RPC或者一次DB操作),每一个Event则代表业务关心的事件,
			2.客户端的每一个相关线程都有一个Tread Local 域,用于存储Message Tree,一旦客户调用 newTransaction接口,就会给这个Message Tree增加一个
			Transaction节点。
				a) 如果当前栈顶Trasaction节点还未结束,则新的Transaction节点会当做当前栈顶的子节点。
				b) 否则新的Transaction节点会当做当前栈顶Transaction节点的兄弟节点加入已有的Message Tree
			3.用户调用complete接口会将当前栈顶Transaction节点标记为结束,如果当前Message Tree的根结点已被标记为结束,则整个Message Tree会被加入本地内存
			队列中,由后台线程异步发送给服务端。


	8.2.4 存储模型解析 

8.3 公共日志服务平台CLog 
	8.3.1 日志系统的演进与特点 
		一个通用的企业级日志系统特性:
			1.高并发,高吞吐
			2.海量数据存储
			3.横向扩展
			4.稳定性
			5.实时性
			6.分析与可视化

	8.3.2 CLog 的架构 
		1.Client
		2.Collector
		3.Log Indexer
		4.Offline

8.4 告警系统 
	8.4.1 告警系统的需求特点 
		告警系统是一个实时数据分析系统。

	8.4.2 流式告警的实现和处理 
		告警最简单的实现就是定时从数据库中拉取数据,并检查是否异常。但这种pull的方式会对存储造成压力。

		经过研究,告警数据在所有监控数据中占比不大,大约8%,并且绝大部分是最近几分钟的数据,如果能够从数据流中直接获取所需要的数据,就能过滤掉大部分不必要的
	数据,避免对后台存储的依赖。这种方式被称为流式告警。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于8.携程架构实践 --- 监控的主要内容,如果未能解决你的问题,请参考以下文章

携程对AIOps场景和算法的探索与实践

JAVA开发与架构(携程架构实践)

1.携程架构实践 --- 携程整体技术架构

最佳实践携程服务注册中心架构演进

携程数据库高可用架构实践

中小型研发团队架构实践三要点(转自原携程架构师张辉清)