《苌程--eBPF揭开程序执行盲区——构建根因推导引擎.pdf》由会员分享,可在线阅读,更多相关《苌程--eBPF揭开程序执行盲区——构建根因推导引擎.pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、第二届 eBPF开发者大会w w w.e b p f t r a v e l.c o m中 国 西 安Kindling-Originx全球首创的故障根因推理引擎eBPF揭开可观测性盲区实现根因推导杭州云观秋毫 苌程第 二 届 e B P F 开 发 者 大 会自我介绍1、2010年浙江大学SEL实验室助理研究员工作10年,专注在云原生和分布式计算领域2016年作为技术联合创始人创立杭州谐云科技,专注在容器云2022年基于eBPF的Kindling开源项目创始人https:/ 年1月推出全球首创的故障根因推理引擎专家的故障排查之道现象一:XX延时升高现象二:XX报错现象三:网络在XX时刻出现抖动
2、现象四:日志报XXX错经验丰富的专家可能性一XXX可能性二XXX可能性三XXX.第 二 届 中 国 e B P F 开 发 者 大 会W W W.e b p f t r a v e l.c o m问题的源点专家为什么要使用启发式的排障方式图片放置区域如果我们知道发生了什么找到根因是容易的可观测性工具的出现帮助我们理解程序执行过程中发生了什么在可观测性性工具的帮助之下仍然有很多盲区盲区的存在,导致人对故障根因的认识都是有限的Gartner对于盲区问题的观点启发式排障解决盲区Unknown-Unknown问题The ability to perform interactive exploratio
3、n and analysis of multiple telemetry types(such as traces,metrics,logs)to detect“unknown unknowns”专家利用现有工具都需要灵感启发才能定位故障根因对于AIOPS,难以提供准确故障根因标记数据第 二 届 e B P F 开 发 者 大 会过度依赖于专家带来的问题技术能力的不均衡,专家过于忙碌:团队内技能水平的差异导致高级工具和数据的利用率低下。知识传递的困难:缺乏有效的机制将高级用户的经验和知识快速传递给新手或非专家用户。故障响应的时效性:在发生故障时,需要快速有效的响应,但技术水平不一致可能导致延迟
4、。培训和提升的成本:提升团队整体技术水平需要大量的时间和资源投入。第 二 届 e B P F 开 发 者 大 会基于eBPF实践TSA方法论完整还原程序执行过程开源Kindling Trace-Profiling打开盲区2、The TSA Method:https:/ 二 届 e B P F 开 发 者 大 会基于排障北极星指标来完成盲区的覆盖Trace sPAN BEGINTrace sPAN END第 二 届 e B P F 开 发 者 大 会构建请求的北极星指标基线很容易识别一次请求的局部异常第 二 届 e B P F 开 发 者 大 会局部异常的统计分析作为故障的初因判定单次请求的局部
5、异常可能是偶发因素对局部异常进行统计分析可以进一步判定故障节点的局部异常是否为故障根因,准确度大幅提高出现这个特征的疑似节点大概率不是根因节点第 二 届 e B P F 开 发 者 大 会利用算法对全局故障节点做疑似节点的筛查完成根因的定位根据各种论文模型对疑似节点进行筛查MicroRankTraceRCAGTraceTraceVAE CRISPTraceAnomalyTrace Analysis for Microservice Architecture疑似节点准确度不是最重要的,允许误报情况局部根因统计能够对算法结论进行进一步根因的确定,所以能允许误报第 二 届 e B P F 开 发 者
6、 大 会故障推理引擎Originx对eBPF能力的理解以内核可观测性数据(程序行为建模)关联其它可观测性数据3、通过eBPF内核可观测性数据对程序行为建模:穿针引线联动各种可观测性数据 应用可观测性数据 网络可观测性数据 日志可观测性数据 各种事件规避了构建运维数据大集中平台的大投入第 二 届 e B P F 开 发 者 大 会“穿针引线”可观测性数据CPU异常代码执行效率CPU利用率代码执行堆栈网络耗时发生在Client、Server、传输三者一侧RUNQ异常CPU资源紧张NET异常疑似网络问题CPU ThrottleCPU Steal网络重传和网络延时网络带宽和节点的CPU利用率IOPSF
7、ile异常疑似存储问题节点读磁盘指标节点写磁盘指标程序GC判断LOREMFutex异常业务锁锁的代码堆栈第 二 届 e B P F 开 发 者 大 会4、北极星指标异常的告警 vs 传统基于指标告警传统基于指标告警对程序执行结果告警阀值设定困难告警与根因关系不明显信息不足告警风暴基于北极星指标告警对程序执行过程异常告警阀值设定简单易懂异常与根因关系非常清晰直接引导排障方向告警风暴可以规避VS第 二 届 e B P F 开 发 者 大 会案例说明一北极星指标CPU相关异常 CPU异常代码循环嵌套比以往多 RUNQ异常节点的CPU资源不足(不管其CPU使用率)或者容器的Limit设置不合理Node的CPU利用率60%该告警吗?具体阀值很难合理设置(业务IO密集型和CPU密集型有关)VS第 二 届 e B P F 开 发 者 大 会案例说明二北极星指标网络也许没有告警 网络重传并不一定会导致程序执行出现异常网络监控发现重传指标波动告警业务现在抖动大概率是由于重传指标波动告警导致的VS第 二 届 e B P F 开 发 者 大 会案例说明三北极星指标告知网络调用偏差很大 网络异常 Futex等待异常 结论:大概率该节点并不是根因应用监控反应出某节点执行时间偏差最大排查日志排查代码执行情况结论这个节点为什么异常?不一定能给出结论VS第 二 届 e B P F 开 发 者 大 会视频效果展示