Tracing 系统 or 人肉 Tracing - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shiznet
V2EX    问与答

Tracing 系统 or 人肉 Tracing

  •  
  •   shiznet 2015-05-31 12:45:03 +08:00 4764 次点击
    这是一个创建于 3838 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天参加sfgg-d-day的活动,听到zava-kid分享的淘宝鹰眼系统,想到以前在进行业务追踪时的痛苦。记得又一次客户端某个用户一天流量就爆掉了,然后在左问题定位的时候,把整个业务相关的人拉到一起,然后大家一起来Tracing。后来就在客户端中有加入了日志统计的模块。但是如果下次其他系统出现同样问题,是否还会经历这样折磨的过程呢?如果有一个完整的业务追踪系统,在问题定位、问题预警上都会发挥不小的作用。

    不知道诸位是否在使用一些比较成熟的方案来作Tracing,或者说一些好用的工具以方便Tracing,再或者分享一些人肉Tracing的经验/趣闻。

    google是有自己的解决方案的:Dapper,这个昨天看了1/3,感觉比较适合比较大的公司,有足够的技术团队能够hold住的。对于小规模的是否有更好的解决方案呢?

    5 条回复    2015-06-25 16:26:26 +08:00
    wmttom
        1
    wmttom  
       2015-05-31 14:18:05 +08:00   4
    OneAPM
        2
    OneAPM  
       2015-06-02 11:05:33 +08:00
    @wmttom 非常感谢推荐,欢迎试用 OneAPM。

    OneAPM 做的是端到端、真实用户体验监控。目前支持多种编程语言:Java、.NET
    、Pyhton、PHP、Ruby。移动端支持Android、iOS。
    Ai 产品主要用于监控服务端(后端)的性能,实时抓取发生缓慢的HTTP请求、SQL语句。
    Bi 产品从页面加载时间、AJAX 加载,页面 Trace、地理位置等多个角度,度量前端页面的性能。
    Mi 产品监控的是移动App,App是否有缓慢的Activity、App是否崩溃闪退,可以直接看到造成这类问题的代码行。


    关于淘宝鹰眼系统,我看了这篇文章大致了解了一下。
    http://www.cnblogs.com/zhengyun_ustc/p/55solution2.html


    鹰眼是定制的,需要修改代码。
    OneAPM用的是BCI技术,无需修改代码。以Java举例,只需将oneapm.jar 放在应用服务器的目录下即可。

    鹰眼用的埋点逻辑,用TraceId把所有的调用关系串起来。这对于开发团队来说是不小的工作量。

    现在我们来对比一下实现的效果:

    淘宝的鹰眼系统


    OneAPM[Ai]
    Java Agent 会把所有被调用的http请求或一些后台任务纪录下来
    我们这里拿一个OneAPM 抓取到的事务为例:


    事务的调用拓扑图:


    当发生了超过设定时间的请求,就会被当成一个trace,这里我们称为慢Web事务
    在这里我们可以看到这个Web事务所有的调用关系,耗时的方法,代码行


    这里我们分析下到底哪里出现了问题




    以上只是大致介绍,其实还有更多的功能 :P

    OneAPM Java Agent 采用的是BCI技术,感兴趣的朋友可以向我要资料。[email protected]
    关于鹰眼系统的资料也欢迎大家发送给我。


    这篇文章里提到性能监控系统通常有几个设计目标,目前来看OneAPM是完全符合:
    (1)低侵入性非业务组件,无侵入其他业务系统,使用方透明,减少开发人员的负担;
    (2)灵活的应用策略随时决定所收集数据的范围和粒度;
    (3)时效性从数据的收集和产生,到数据计算和处理,再到最终实时展现;
    (4)决策支持这些数据能在决策支持层面发挥作用,特别是从 DevOps 的角度;
    (5)可视化。

    最后,感谢@wmttom 给我们打广告的机会 :)
    Chimney
        3
    Chimney  
       2015-06-02 11:12:45 +08:00
    @OneAPM 能否展开一下BCI技术。。。
    shiznet
      nbsp; 4
    shiznet  
    OP
       2015-06-13 11:52:17 +08:00
    @OneAPM
    抱歉这么就才来回复。

    想问下OneAPM这里的Java Agent是否是类似于nginx这种做http的proxy?如果是这样的话,最终对服务的性能开销大概有多少呢?对于某些核心服务对于性能的要求还是蛮高的,所以需要关注一下。
    我个人对文中的描述是监控某个service对其他服务调用的监控,只是一度的关系的维护(比如app188-4外部服务),而没有类似鹰眼的整个业务链的tracing。不知我理解的是否正确
    OneAPM
        5
    OneAPM  
       2015-06-25 16:26:26 +08:00
    @shiznet

    想问下OneAPM这里的JavaAgent是否是类似于nginx这种做http的proxy?
    答案:不是

    如果是这样的话,最终对服务的性能开销大概有多少呢?
    答案:2%

    我个人对文中的描述是监控某个service对其他服务调用的监控,只是一度的关系的维护(比如app188-4外部服务),而没有类似鹰眼的整个业务链的tracing。不知我理解的是否正确?
    答案: 我们也支持业务链的tracing 目前http 远程调用支持的比较好。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3952 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 10:15 PVG 18:15 LAX 02:15 JFK 05:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86