演讲文稿:
第一页演讲文稿:
众说周知,随着微服务技术架构的流行,应用程序在监控层面的复杂度越来越高,维护实施成本也同样增高,但技术发展到今天,解决的办法也随之出现了,今天我们要介绍的就是全链路监控。
第二页演讲文稿:
为什么要对业务程序做监控,监控的目的是什么? 主要有以下几个方向:
- 优化业务体验
- 清楚业务间调用关系
- 加速问题解决速度
- 对异常业务行为预警
- 使得老板、产品、运营、运维等用户都可以快速了解业务是否有问题
第三页演讲文稿:
但现在的问题是,使用分布式跨机房的部署架构后,这么复杂的业务我怎么理清楚呢;服务依赖这么多,哪个地方才需要优化?
这么多依赖,我解决问题的速度快不起来,那就会导致故障扩大,间接造成公司损失。怎么解决这些问题呢,接下来我们就会知道
第四页演讲文稿:
随着互联网行业的进步,监控的意义与重要性被越来越多人重视,因此打造一个完备的监控体系势在必得。以往监控的弊端有以下几点:
- 各系统监控能力与覆盖度参差不齐
- 系统、业务监控一把抓
- 上下游跨部门协助成本高
- 看不到全貌
那么我们就要通过应用管控层面 业务运营层面来打造一套多维度立体化的监控体系。
第五页演讲文稿:
首先了解下全链路监控的由来,首先来自 goole dapper这么一篇论文,论文中提到的三要素奠定了理论实现的基础,它们分别是Span、Trace、调用链。具体定义的内容大家可以看看PPT
第六页演讲文稿:
既然要做这么一套东西,就先找找有没有开源的实现产品,其实只要是支持OpenTracing规范的框架产品都可以,本文选用apache 顶级项目skywalking,OpenTracing规范包含以下三点:
- Metrics(aggregatable):
- 单指标分析Tracing(request scope):
- 分布式追踪Loggin(events):日志事件文件
右下角是全链路监控的架构略缩图
第七页演讲文稿:
这里说下整个全链路监控的系统流程
- 项目经理发布需求后由程序员开发编码
- 编码完成后统一发布到容器环境中
- 每个容器都有一个用于收集环境于应用信息的SDK
- 通过主动提交至数据采集平台完成信息聚合
- 自定义各种监控策略,以供面板显示
第八页演讲文稿:
那么在监控面板上,我们主要关注的是哪些信息呢?主要关注的有:
- 服务的QPS,每秒的投标数
- 服务处理耗时,区别成功、失败
- 服务的异常,错误率,错误码
- 在使用资源占比,区分应用类型
其实主要分为两大类:核心指标与辅助指标
第九页演讲文稿:
那么常见的分级指标有以下这些,仅供参考:
- 应用类型指标有:系统指标、JVM、中间件、数据库、API调用量
- 关联类型的指标有:调用方、来源、是否压测、机房单位
- 核心类型指标有:流量、延时、错误率
第十页演讲文稿:
我们来看看阿里巴巴针对业务领域划分后架构的全链路监控模型,各位可以对比自己负责的项目架构做拆分理解。
交易域中包含多个维度的数据,比如业务方维度、物理维度、环境维度等,这些数据都会统一等被当作价值数据提供到全链路平台中,以便故障排查与定位。
第十一页演讲文稿:
那么数据采集上肯定是需要一个规范的,不然各个业务产品线都按照自己的想法来,岂不乱套了。至于规范有以上两种方式可以参考:
- 日志格式化:采用统一的规范标准,全平台应用统一监控,减轻运维与开发学习成本,提高系统运算速度
- 埋点配置化:提供专业的埋点SDK,通过配置化的方式实现对数据的拦截、计算、上报,用户无需修改业务代码。
第十二页演讲文稿:
说了这么多理论内容,这里给大家看看实际多skywalking效果吧,从图中可以看到应用的各种平均值,如平均响应时长等。
第十三页演讲文稿:
还可以看到节点等应用平均值,如响应时长呀,执行等sql呀,耗时呀。
第十四页演讲文稿:
还可以看到应用全局到拓扑图,了解系统相关到依赖,还能从中了解系统模块之间流量、耗时、成功率等关键数据
第十五页演讲文稿:
当然还有局部拓扑图,显示业务之间调用成功数/失败数;各模块实例节点数;当前机器cpu/内存。可以关注某个重点业务线相关联的拓扑图,也可以在拓扑图上选某条线关注其相关的服务节点(如优惠券使用需要账户、产品、交易三个业务交互)
第十六页演讲文稿:
在一次请求当中,我们往往想知道具体底层经过了哪些方法操作,skywaling还提供了业务调用连的查询,如图。调用链其实可以反应一次业务操作所要经过的所有业务,比如投标操作:需要验证账户、校验资金、下单、确认付款、标的信息变更、合同等多方操作。
第十七页演讲文稿:
对于分布式的应用,除了查看服务内调用的方法链路,还需要知道是与其交互的其他微服务节点,那么同样可以看到。如图,
比如从当前时间开始,持续了3401毫秒,总共跨越调度了9个节点(有中间件、数据库、服务)显示每个跨度点的调用量、流量、耗时、IP等
第十八页演讲文稿:
最后我这里提出三个问题,大家可以举手来回答,如果没有人的话,这就留给各位同事去私下研究下,不懂的可以请教我。
第十九页演讲文稿:
谢谢大家来参加本次技术分享,希望这次的内容对你们有所帮助或提升。