- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
全链路监控方案概述与比较
基本工作单元,一次链路调用(可以是RPC,DB等没有特定的限制)创建一个span,通过一个64位ID标识它,uuid较为便利,span中还有其他的数据,例如描述信息,时间戳,key-value对的(Annotation)tag信息,parent_id等,其中parent-id可以表示span调用链路来源。
上图说明白span在一次大的跟踪过程中是什么样的。Dapper记录了span名称,以及每个span的ID和父ID,以重建在一次追踪过程中不同span之间的关系。假如一个span没有父ID被称为root span。全部span都挂在一个特定的跟踪上,也共用一个跟踪id。
Span数据结构:
type Span struct {
? ?TraceID ? ?int64 // 用于标示一次完整的恳求id
? ?Name ? ? ? string
? ?ID ? ? ? ? int64 // 当前这次调用span_id
? ?ParentID ? int64 // 上层服务的调用span_id ?最上层服务parent_id为null
? ?Annotation []Annotation // 用于标记的时间戳
? ?Debug ? ? ?bool
}
3.2 Trace
类似于?树结构的Span集合,表示一次完整的跟踪,从恳求到服务器开头,服务器前往response结束,跟踪每次rpc调用的耗时,存在独一标识trace_id。比如:你运转的分布式大数据存储一次Trace就由你的一次恳求组成。
每种颜色的note标注了一个span,一条链路通过TraceId独一标识,Span标识发起的恳求信息。树节点是整个架构的基本单元,而每一个节点又是对span的引用。节点之间的连线表示的span和它的父span直接的关系。虽然span在日志文件中只是简约的代表span的开头和结束时间,他们在整个树形结构中却是相对独立的。
3.3 Annotation
注解,用来记录恳求特定大事相关信息(例如时间),一个span中会有多个annotation注解描述。通常包含四个注解信息:
(1)?cs:Client Start,表示客户端发起恳求 (2)?sr:Server Receive,表示服务端收到恳求 (3)?ss:Server Send,表示服务端完成处理,并将结果发送给客户端 (4)?cr:Client Received,表示客户端猎取到服务端前往信息
Annotation数据结构:
type Annotation struct {
? ?Timestamp int64
? ?Value ? ? string
? ?Host ? ? ?Endpoint
? ?Duration ?int32
}
3.4 调用示例
恳求调用示例
当用户发起一个恳求时,首先到达前端A服务,然后分别对B服务和C服务进行RPC调用;
B服务处理完给A做出响应,但是C服务还需要和后端的D服务和E服务交互之后再返还给A服务,最终由A服务来响应用户的恳求;
调用过程追踪
恳求到来生成一个全局TraceID,通过TraceID可以串联起整个调用链,一个TraceID代表一次恳求。
除了TraceID外,还需要SpanID用于记录调用父子关系。每个服务会记录下parent id和span id,通过他们可以组织一次完整调用链的父子关系。
一个没有parent id的span成为root span,可以看成调用链入口。
全部这些ID可用全局独一的64位整数表示;
整个调用过程中每个恳求都要透传TraceID和SpanID。
每个服务将该次恳求附带的TraceID和附带的SpanID作为parent id记录下,并且将本人生成的SpanID也记录下。
要查看某次完整的调用则?只需依据TraceID查出全部调用记录,然后通过parent id和span id组织起整个调用父子关系。
调用链核心工作
调用链数据生成,对整个调用过程的全部应用进行埋点并输出日志。
调用链数据采集,对各个应用中的日志数据进行采集。
调用链数据存储及查询,对采集到的数据进行存储,由于日志数据量一般都很大,不只要能对其存储,还需要能供应快速查询。
目标运算、存储及查询,对采集到的日志数据进行各种目标运算,将运算结果保存起来。
告警功能,供应各种阀值警告功能。
全体部署架构
通过AGENT生成调用链日志。
通过logstash采集日志到kafka。
kafka担任供应数据给下游消费。
storm计算汇聚目标结果并落到es。
storm抽取trace数据并落到es,这是为了供应比较简单的查询。比如通过时间维度查询调用链,可以很快查询出全部符合的traceID,依据这些trac
您可能关注的文档
最近下载
- 2023年首都师范大学公共课《马克思主义基本原理概论》期末试卷A(有答案).docx VIP
- 737NG 将左点火嘴连接到交流备用汇流条上.pptx VIP
- 新22J03 外装修标准图集.docx VIP
- 油田公司录井工程质量控制措施.doc VIP
- 降低护士临时用药时PDA漏扫率 (2).pptx VIP
- 初级教育比较首次在线辅导.doc VIP
- 医疗器械可用性使用错误评估报告--可用性工程.docx VIP
- 《医生的职业精神》课件.ppt VIP
- JJG 195-2019 连续累计自动衡器(皮带秤).pdf VIP
- 冠状动脉微血管疾病诊断和治疗中国专家共识(2023版)解读PPT课件.pptx VIP
文档评论(0)