带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(1)https://developer.aliyun.com/article/1340968?groupCode=taobaotech
可观测体系
监控到可观测性的演变
可观测性是一套理念系统,没有对技术实现的具体要求,重点是通过引入该理念,将理念应用到我们的业务迭代和问题洞察中。传统的运维可能只能给我们带来最顶层的告警和异常的概况,当需要更深层次的错误信息定位的时候,往往会通过建群拉人,然后先通过人肉找寻问题的特征,甚至是某个模块的开发承担起分析各个模块的依赖关系等的工作,问题处理基本涉及3个角色以上(业务、测试、开发、架构、平台等)。
相比传统的监控,可观测性能够通过结合数据,并且将数据有机联系在一起,产生更好的连接,帮助我们更好的观察系统的运行状况,快速定位和解决问题。「监控告诉我们系统的哪些部分是工作的,而可观测性告诉我们那里为什么不工作了」,下图2说明了两者之间的关系,监控侧重宏观大盘展现,而可观测性包含了传统监控的范畴。
(图2 监控和可观测的关系)
从上图来看,核心还是观察各个模块以及关键调用和依赖等的输出,基于这些输出来判断整体的工作状态,业界通常会把这些关键点总结为Traces、Loggings、Metrics。
可观测性关键数据
(图3 可观测性关键数据)
结合Traces、Loggings、Metrics的定义和淘宝现有情况,做了一些解读:
Loggings(日志):基于现有TLOG(无线端到端日志系统)日志通道,展现的是App运行时产生的事件或者程 序在执行的过程中间产生的一些日志,可以详细解释系统的运行状态,如页面跳转、请求日志、全局CPU、内存 使用等信息,多数日志是没有实现串联的,现在引入结构化的调用链路日志后,日志在调用链场景结构化后其实可以转变为Trace,支撑单机排查。
Metrics(指标):是聚合后的数值,偏宏观大盘使用,对于问题定位缺乏细节展示,一般有各种维度、指标, Metrics数据量一般很大,需要针对场景做一些采样控制。
Traces(追踪):是最标准的调用日志,除了定义了调用的父子关系外(一般通过TraceID、SpanID),一般 还会定义操作的服务、方法、属性、状态、耗时等详细信息,通过Trace能够代替一部分Logs的功能,长期看通过Trace的聚合也能得到每个模块、方法的Metrics度量指标,但日志存储大,成本高。
带你读《2022技术人的百宝黑皮书》——移动域全链路可观测架构和关键技术(3)https://developer.aliyun.com/article/1340966?groupCode=taobaotech