问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

trace的产率说明

发布网友 发布时间:2023-03-06 19:08

我来回答

2个回答

热心网友 时间:2024-11-10 11:39

近期一直在学习和复现“根因分析”领域的相关文章,在这里跟大家一起分享下相关内容。这里不在赘述关于“可观测性”和“AIOps”的重要性和必要性,也不过多的陈述在“复杂系统”中进行快速根因诊断的必要性,直接进入到相关算法和系统设计部分。

在智能运维的体系中,用来分析和建模的数据可以笼统的分为:Log + Trace + Metric,这里面的数据量是巨大的,且数据形态是复杂多样,对于企业来说,不仅仅要考虑存储系统的吞吐、以及架构在存储系统之上计算引擎的灵活性,同时也会很关注成本。

基于Trace我们可以做些什么?

业务场景

拓扑生成
架构梳理
各服务的流量估算
系统的热点分析
链路的性能分析
错误的传播分析
发布过程中,流量的灰度分析,发布质量的评估
各家根因分析系统(系统+算法)

EMonitor -> 基于Tracing和Metrics的诊断系统

该系统是来自阿里本地生活的故障诊断的分享,在特定场景中可以较好的解决如下问题:

哪些入口受到了影响?
受影响的入口的本地操作和远程操作的影响如何?
受影响的入口都抛出了哪些异常?
在该系统中,无法准确(无法直接根据数据给出,需要推断)的解决如下问题:

GC问题
容器问题
变更导致的问题
该诊断系统的上层出发点是源自于观测的核心SLO指标的抖动,去分析是哪些聚合维度的指标的异常导致了当前的扰动,从而定位到需要进一步诊断的下层入口,通过如此反复的确认,得到最终的定位信息。这里提供一张特定的图(来自知乎上的发表过的图)。

通过上述图中的描述,我们可以看到饿了么团队可以完成如下几个能力:

大量复杂的数据预处理,通过一定的手段将数据进行清洗后格式化(或者严格要求日志字段格式),较好的完成了Metrics、Logs、Trace的关联跳转;
开发了特定的计算策略(OLAP侧或者本地服务侧)支持扰动分析,提供出探寻的候选集;
在特定的业务场景中,支持多个服务模块之间的参数调用,得到较为完成的业务侧拓扑;
但是分析下来,里面必定特别多的定制化的操作和对于开发的严格日志结构的要求,且有较大的定制化开发需求,在云上快速拓展有一定的难度。

GMTA Explorer -> 基于Trace的监控和服务诊断

该系统是eBay建立并在企业中落地的诊断系统,这套系统可以解决eBay每天1500亿条Span数据,可以在一定程度上处理Trace数据中的断链和错链问题。这里最核心的概念在如下的图2中已经描述出来了,这里重新提取下:

BusinessFlow(业务流):最终是由业务方(使用方)来确定的;
Path:同一个业务在一段时间内的请求所构成的一个链路,最终是有多条Trace的路径合并出来的(业务请求在微服务系统中流经的节点所构成的Path)
数据流图+算法设计

在上图中,我们可以看到最核心的是要通过Flink计算出单条Trace的Path,然后通过一定的手段(聚类等)实现业务流的生成(Business Flow)。在数据处理的环节有几个重要的手段进行数据的处理:

根据特定业务输入,完成一些无效操作名称的替换;
根据标准的Trace定义,丢弃一些错误的数据,比如:根节点缺失、多个根节点等;
同时要尽可能关联一些错误日志数据,叫做错误传播链(EP Chains, Error Propagation Trace);
下图较为清晰的描述了几个核心概念之间的关系。

这里我们可以简单说下,产生最终业务流的依赖的数据。根据文中的数据来说,在图数据存储中,时刻更新着当前系统中操作粒度的调用关系图,在分析型存储中按照一定的需求,存储着Path信息和业务流信息。

通过文中这个图,我们可以基本知道分析型存储中的基本结构,其中对于后续分析问题较为重要的两个核心属性是:PathID和BusinessFlowName,其中重中之重的属性值是PathID。那么,我们查看下原文中对于PathID的生成部分的描述。这里我们就要查看下文中的一个SpanHash的策略了。

span
+ serviceName
+ operationName
+ level
+ ration
+ statusCode
+ labels
+ childSpans[]

Algorithm 1 SpanHash(span)

+ hash = HashCode(span.serviceName) + HashCode(span.operationName) + span.level * PrimeNumber
+ for each child in span.childSpans do
+ hash += SpanHash(child)
+ end for
+ return hash
这里面一个比较核心的问题在于:如何在海量的Trace数据中,以较小的成本去解决单个span在Trace链路中的level和childSpans的问题?(这个问题本质上将是:底层的存储和计算引擎的选型和问题,文中提到,在eBay中使用的是Neo4j+Druid+Flink进行存储和计算)

还有一点值得称赞的是,该平台的完整度问题,在GMTA Explorer中,提供了很多基础能力,我们一起来看下。

基于上述能力,可以解决不同场景的业务问题

作为开发人员,可视化业务流程中服务的依赖关系和依赖项,以确定服务的更改影响。
作为架构师,学习与关键业务(例如支付)相关的路径和指标,以支持架构决策。
作为 SRE,确认服务行为的变化或模式,并评估业务变化或其他因素对流量、延迟和错误率等指标的影响。
这里就提供下文中的实验例子,由于接口变更导致的服务指标的变化。

可以较为清晰的看到,上部分表达的是某个业务流中有三个核心链路,下面部分表示的是链路归并后的效果,我们可以很清晰的看到,在userCheckout这个链路中calculateMoney的调用接口由"coupon" -> "couponV2"后,可以较清楚的看到,对于createOrder来说,调用量上升了20%,延迟降低了5%。

在工程实践上的一些取舍

在后端存储和计算的选型上,不额外的造轮子,选择现有的大数据组件,且经过一些中间层粘合起来使用
对于如此大的数据规模,在实际中,也会进行一定的采样(文中提到了1%的采样率写入到Kafka中)
对于trace中数据的迟到和完整度的问题,采用Flink去解决
对于Flink消费之后的结果,一部分写入到Druid中,一部分直接提取后写入到neo4j中
在通过一些UI可视化组件解决后续的交互式分析问题
几点思考

这偏文章读下来更多的是偏向介绍数据在系统中的流转,并非过多的在介绍算法本身(单纯的看算法部分缺失不复杂),落地起来较为可行;
在PathID生成中,过分依赖Flink的State能力,并没有设计或优化下高效的生成PathID的策略,这里还需要进一步的提升;
在文末提到,对数据进行Trace数据的1%的采样,并没有透露出具体的采样策略,因为采样策略对数据质量和数据覆盖度有较为严重的影响;
文中提出了Business Flow的概念,这个让我眼前一样,继续探索下,如何能进一步自动生成BusinessFlow的策略,可以通过一个UI让用户可以来管理自己的业务就是很大的进步了;
根因诊断的下一步思考

算法侧需求
Trace场景的数据相对来说较为确定且具体,其中面临的问题也是确定的,这里更多的是是考虑如何在端上可以灵活的按需去采样,去解决后端的存储成本的问题,对于算法侧来说复杂度不是很高;
在解决Trace数据后,如何将Metric和Alarm整合在一起,去自动化的做因果分析,这个还是复杂一些的;
是否可以在以一步的让AI去学习我们的业务代码,能否将根因结果自动的和代码提交进行诊断,进一步定位到具体的更改(微软等已经在做了一些尝试)
下一步更多的需要去考虑多元数据的融合问题,能否在云上提供类似APM中的完整能力,做到简单、易用;
现阶段对于平台来说,要解决好信息抽取后的表达和管理工作,为后续的自动化分析和诊断扫清 障碍;

热心网友 时间:2024-11-10 11:40

trace的产率说明
加减号或者trace报告就是说明你的尿里有蛋白比减号的时候要多一点,但是还不足以达到一个加号的水平。所以尿蛋白trace,就是说尿里有少量的蛋白。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 这句话用部分倒装,应该是be动词提前,frightened不是实义动词吗?怎么会... 阿巴措是什么意思 卧不安席是什么意思 两个字的游戏名字大全,好听的两个字的游戏名字高冷_三哈网 医谷填表小子怎么安装 BS7799标准的介绍 英雄杀韩信英雄外传第四关怎么过 英雄杀英雄外传的皮肤是永久的吗 迁莺[qiān yīng]什么意思?近义词和反义词是什么?英文翻译是什么? 10首描写春天的古诗 多功能户外移动电源音响链接方法 欧几里德角膜塑形镜先戴哪一只眼睛 春捂捂哪里 春捂到底捂哪里呢 春捂到底应该捂哪儿? 白菜是凉性还是热性 白菜炒熟了还是寒性的吗 满江红作者是谁?哪个朝代的人? 六国论在高中必修几 六国论赏析 六国论的第五段运用的论证方法 六国论怎样通过骈散结合来表情达意的词语 苹果无线耳机安卓手机可以用吗 养蜜蜂的想要买一个随车吊,得多大的,最好便宜点的 最大蓝牌养蜂车能装多少箱蜜蜂 华为手机怎么关闭短信提示音 方舱医院收治什么样的病人 五鬼闹判是什么意思 并联电路电压特点 并联的主要特点 我有向佛之心,对佛法却不甚了解,该诵什么经,每日该做哪些与修行的事,我... 四个字的微信昵称女生 干嶂里,长烟落日孤城里 平板没有卡怎么申请? 挺身唯直指,无意独欺愚什么意思 呼先王以欺愚者而求衣食焉的意思 ...强不执弱,众不劫寡,富不侮贫,贵不傲贱,诈不欺愚是什么意思... 电视剧霹雳火龙丹丹是什么身份 冷冻鸡肉丸子煮多久能熟 霹雳火龙丹丹和谁结婚了 怎么通过查到对方的手机号码 根据能找到关联的手机号吗安全吗