首页 > 其他分享 >链路追踪-Google-Dapper论文翻译总结

链路追踪-Google-Dapper论文翻译总结

时间:2022-12-21 12:02:29浏览次数:44  
标签:Google 服务 鹰眼 rpc 调用 链路 日志 Dapper 追踪

一、两个基本需求

  • 无处不在的部署:
    无处不在很重要,如果系统的一小部分没有被监视,就会受到影响
  • 连续监测:
    因为通常情况下,不寻常或其他值得注意的系统行为很难或不可能重现

最终形成三个具体的设计目标

二、三个设计目标

  • 低开销:跟踪系统对运行服务的性能影响应该可以忽略不计。在一些高度优化的服务中,即使很小的监视开销也很容易被发现,并且可能迫使部署团队弃用跟踪系统,Dapper的消耗时间在200纳秒左右。
  • 应用程序级透明度:应用程序的开发人员不需要知道追踪系统,依赖于开发人员的基础设施经常是会变的极其脆弱
  • 可伸缩性,需要能支持公司未来几年内的服务数量

    如上图所示,在架构的最上端是应用集群,每台机器中都有一个带鹰眼埋点,该中间件负责向日志文件中写入数据,每台机器上的数据收集agent从日志文件读取数据,实现实时收集日志;在鹰眼系统中通过实时处理集群对实时日志进行计算分析,得到两种类型的数据,分别是统计类型的报表(存放在HBase中)和调用链调用明细详情(存放在HiStore中);另外,涉及到离线数据分析的数据使用ODPS离线分析集群进行计算,主要是一些模型建设方面的分析。关于鹰眼的介绍,楼主也是参考了如下被转载的文章:​​分布式调用跟踪与监控实战​​

三、详细实施办法

  • 1、记录rpc调用的开始时间和结束时间:只有记录了时间才知道每个rpc调用所消耗的时间
  • 2、记录消费方调用服务的id:如果想知道完整的调用顺序的调用链,必须知道调用的前后关系。
  • 3、每调用一层rpc,添加一个深度级别:有时候服务多次调用,光用id是不行的,这时候深度级别是可以鉴别调用链关系的字段
  • 4、有一个全局唯一的TraceId:用来定位追踪
  • 5、不仅要追踪访问了的服务,还要在返回端打印追踪情况情况,记录是否返回。
  • 6、不同主机时间不完全相等:在一个rpc调用中,不能根据时间判断调用顺序,不同主机的时间不是一样的,在rpc调用中,2,3ms的影响就很明显。
  • 7、对于部分直接进行TCP或者SOAP连接的服务,支持手动代码添加
  • 8、写磁盘是非常昂贵的消耗,通过异步合并多个日志文件写操作并异步执行。经测量Dapper的cpu使用率不到0.3%,数据收集的网络流量占用不到0.01%。将cpu的轮转优先级调到最低。
  • 9、为了避免追踪代码影响应用的逻辑,怎么进行测试,是一个非常值得重视的问题。

四、鹰眼

在鹰眼平台中,通过顺序编号的方式表示服务间的顺序关系,采用如1.1、1.2.1多级嵌套编号的方式体现服务的调用顺序与调用关系,下图中的数字就是rpcId的示意,鹰眼平台正是通过RPCID还愿一次请求过程中各服务的调用关系。

链路追踪-Google-Dapper论文翻译总结_翻译


鹰眼的埋点日志中包含如下信息:

  • TraceId,RPCID、开始时间、调用类型、对端IP
  • 处理耗时
  • 处理结果(ResultCode)
  • 数据传输量:请求大小/响应大小
    对于打印日志带来的影响非常敏感的服务,如大促秒杀,就只收集记录其中很小一部分日志的方式。

这段引用自阿里巴巴中台实战架构

五、其他

在Google的Dapper中,链路追踪还提供了统计,校验等功能,但这些应该不是链路追踪所必须的,上面的基础功能先进行实现是最为重要的。


标签:Google,服务,鹰眼,rpc,调用,链路,日志,Dapper,追踪
From: https://blog.51cto.com/u_11970680/5959706

相关文章

  • Python 大规模异步新闻爬虫、google、百度、有道、百度指数
    参考:​​https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html​​url_pool.py#-*-coding:utf-8-*-#@Author:佛祖保佑,永无bug#@Date:#@File......
  • macOS 应用多开 Google Chrome 应用分身 All In One
    macOS应用多开GoogleChrome应用分身AllInOneGoogleChrome浏览器副本macOSChrome应用分身新建用户数据存放目录#软连接?WindowsChrome应用分身右......
  • vivo 推荐业务 x DeepRec:全链路优化实践
    作者:vivo-人工智能推荐团队:何鑫、李恒、周健、黄金宝背景vivo人工智能推荐算法团队在深耕业务同时,也在积极探索适用于搜索/广告/推荐大规模性稀疏性算法训练框架。分别探......
  • macOS 13 彻底卸载 Google Chrome 和清除用户数据 All In One
    macOS13彻底卸载GoogleChrome和清除用户数据AllInOnebug/Users/xgqfrms-mm/Library/Users/xgqfrms-mm/Library/Caches#“~/Library/Caches”$pwd/Users/x......
  • m基于simulink的WCDMA通信链路仿真
    1.算法概述W-CDMA由ETSINTTDoCoMo作为无线介面为他们的3G网路FOMA开发。后来NTTDocomo提交给ITU一个详细规范作为一个象IMT-2000一样作为一个候选的国际3G标准。国际电信......
  • m基于simulink的WCDMA通信链路仿真
    1.算法概述      W-CDMA由ETSINTTDoCoMo作为无线介面为他们的3G网路FOMA开发。后来NTTDocomo提交给ITU一个详细规范作为一个象IMT-2000一样作为一个候选的国际3G......
  • 与Google一起构建芯片
    Google 介绍,这是 Google 与 SkyWater Technology 晶圆代工厂、IC 设计业者 Efabless 合作,提供完全开源的工艺设计套件 (PDK) 与工具,任何开发人员都能设计芯片。......
  • 谷歌上做SEO价钱大概多少,Google优化怎么收费?
    很多做外贸的老板一直头疼,自己组建团队去做优化跟外包其实在成本上有巨大的差距,所以目前谷歌seo代运营很火,关键是你找谁做,市场有没有性价比高的SEO服务?收费如何?答案是:非标......
  • 【全链路压测】全链路压测原理与实践
    一、参考资料​​全链路压测简介-云视频-阿里云开发者社区​​​​首次面向B端展开全链路压测!淘系高难度压测实践方案公开-阿里云开发者社区​​ ​​双11备战“核武器”,白......
  • Google 插件总览
    ​​有道翻译​​​​Vue.jsdevtools​​​​bilibili哔哩哔哩下载助手​​​​哔哩哔哩助手:bilibili.com综合辅助扩展​​​提供方:​​https://bilibili-helper.github.......