35
驭风-搜狗分布式追踪系统 设计与实践

驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风-搜狗分布式追踪系统 � 

设计与实践 � 

Page 2: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

董泽光,搜狗架构师 � 

专注于互联网基础架构设计、分布式存

储与计算;对大数据体系,实时计算,

微服务体系,消息系统有深入研究和实

践经验 � 

关于我 � 

Page 3: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

� 

u  �  � 分布式追踪系统概览 � 

u  �  � 驭风系统设计与实践 � 

u  �  � 总结与展望 � 

CONTENTS �

contents � 

Page 4: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

分布式追踪系统概览 � 1 � 1

Page 5: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

搜狗商业平台 � 

100+应用系统 � 

10亿+广告物料 � 

服务运行在上千台服务器 � 

横跨多个数据中心 � 

服务A � 

服务B �  服务C �  服务D � 

服务E � 

服务F � 

Page 6: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

分布式技术特点 � 

分布式服务 � 

分布式存储 � 

分布式消息 � 

分布式计算 � 

服务关系复杂 � 

数据规模大 � 

服务调用链路长 � 

无法快速定位性能瓶颈和异常 � 

Page 7: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

寻求方向 � 

l  Google � Dapper � 

Page 8: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

复杂的异构系统 � 

为什么自建驭风系统? � 

海量数据存储和计算 � 

服务化体系 � 

监控报警体系 � 

服务体系内有众多异构系统,java、c++、php等 � 

每天亿级的数据量采集、计算、存储和查询 � 

公司内自建服务化中间件、数据库中间件体系的无侵入埋点和数据的透明传输、快速接入 � 

保持和公司内自建的监控报警体系无缝对接 � 

Page 9: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风系统设计与实践 � 2 � 2

Page 10: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风系统简介 � 

搜狗自研的分布式系统下的性能监控和问题追踪平台 � 

提供分布式应用服务调用全链路跟踪定位 � 

提供快速有效的数据展示和统计分析、趋势预测功能 � 

快速的告警服务提升解决问题的效率 � 

客户端agent方式的日志采集和大数据平台的日志处理、存储 � 

Page 11: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风系统应用现状 � 

驭风-搜狗分布式追踪系统 � 

覆盖多个产品线 � 

每天调用链路数据量为亿级 � 

支持C++、JAVA等多个异构系统 � 

覆盖内部大部分基础中间件 � 

决策分析(容量评估、阈值告警等) � 

Page 12: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统设计目标 � 

• 线上服务性能影响足够小 � • 线上服务是否监控可控 � 低消耗 � 

• 尽可能少侵入或者不侵入业务系统 � • 保持对使用方的透明性 � • 减少开发人员的负担和接入门槛 � 

低侵入性 � 

• 从数据的收集和产生,到数据计算/处理,再到展现或反馈,都要求尽可能的快速 � 时效性 � 

• 支持海量数据存储 � • 支持在海量数据中快速的检索数据 � 海量数据 � 

Page 13: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统处理流程 � 

数据源 �  数据采集 �  数据处理 �  数据存储 �  决策分析 � 

组件埋点 � 

本地日志 � 

异步传输 � 

权限校验 �  原始数据 � 

统计数据 � 

配置信息 � 

数据过滤 � 

数据适配 � 

统计分析 � 

阈值报警 � 

趋势预测 � 

Page 14: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统架构 � 

业务应用系统集群各种埋点中间件

本地日志文件

日志收集组件agent

流式计算处理平台

HBase应用API服务Web服务

外部系统

日志

Zookeeper采样率和开关控制

SQL查询引擎

消息队列

Page 15: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统设计理念 � 

调用链 � 

• Trace树 � • Trace树由多个Span节点构成 � 

• TraceID被透传到上下游所有节点,将孤立的系统日志串联在一起 � 

埋点时间 � 

• 客户端发送 � (Client � Send) � 

• 服务端接收 � (Server � Receive) � 

• 服务端响应 � (Server � Send) � 

• 客户端接收 � (Client � Receive) � 

埋点类型 � 

• 单向型 � 客户端创建调用链生成日志(服务端未埋点) � 

• 双向型 � 客户端+服务端,传输上下文,生成日志 � 

Page 16: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统设计理念-Trace树 � 

应用A

应用B 应用C 应用D

应用F

分布式缓存DB 文件

应用G 应用H

文件

客户端请求

0

0.1 0.3

0.1.1 0.1.2 0.3.1

0.1.1.1

0.2.1 0.2.2

0.3.1.1 0.1.2.1 0.2.2.1 0.2.2.2

0.2

Page 17: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

系统设计理念-Span � 

应用A

SR

SS

CSaCRa

...

应用B

SRb

SSb

CSCR

...

应用C

SR

SS

CSCR

... ...

Span1

CSa CRa SRb SSb

Exception Parameter

SpanId: 0.1

Span2

CS SR SS CR

Exception Parameter

SpanId: 0.1.1

Invoke

Span0

SR SS

Exception

Parameter

TraceId: 19c2d24bSpanId: 0

TraceId: 19c2d24b TraceId: 19c2d24b

CS(Client Send 客户端发送)CR(Client Receive 客户端接收)SR(Server Receive 服务端接收)SS(Server Send 服务端发送)

Page 18: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风系统各个阶段 � 

数据采集 � 

数据处理 � 

数据存储 � 

数据展示与决策分析 � 

Page 19: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

数据采集 � 

• 低侵入(中间件埋点、标准格式、C++/Java多语言版本) � • 低消耗(本地日志、异步收集) � • 高可控(开关控制、采样率) � 

埋点 � 

• 自研的agent � • 支持断点续传 � • 输出到消息队列 � • 支持日志文件的滚动 � • 异步传输 � 

日志收集agent � 

Page 20: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

数据采集–埋点 � 

• 调用类型、对端 � IP、服务名称、耗时、层级关系、异常信息、业务自定义数据 � 

埋点哪些数据 � 

• 同步、异步 � 

调用方式 � 

• 本地共享,通过线程数据共享方式 � 

• 传输通过Http � Header或RPC参数透传数据到下游 � 

埋点信息传输 � 

Page 21: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

数据采集–日志收集 � 

监测的日志

监测文件变化线程

获取日志内容 消息队列

checkpoint(处理后的日志位置)状态管理

Checkpoint文件

l  自研的组件 � 

l  支持重传和断点续传 � 

l  支持日志文件的滚动 � 

l  日志异步写入到消息队列 � 

l  类似的组件Flume-NG � 

Page 22: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

数据处理 � 

l  流式数据计算平台 � 

简单的编程模型、低延迟、

高性能、分布式、水平扩展、

容错性、可靠的消息处理 � 

l  数据过滤 � 

�  �  �  �  �  � 数据格式校验、权限校验 � 

l  数据处理 � 

数据适配转换、SQL生成 � 

流式数据处理平台

读取消息队列

日志过滤器(数据格式、权限校验)

数据适配转换

存储SQL生成(日志数据、二级索引)

HBase

消息队列

SQL引擎

Page 23: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

数据存储 � 

海量数据 � 

复杂条件查询、低延迟 � 

HBase、SQL引擎 � 

l  数据存储的特点 � ü  海量数据,写多读少 � ü  低延迟查询 � 

ü  复杂条件查询 � 

l  HBase � ü  高可靠性、高性能、面向列、

可伸缩的分布式存储系统 � 

l  SQL引擎 � - � Phoenix � ü  复杂查询条件 � ü  支持SQL方式查询 � 

ü  高速查询、低延迟 � 

�  �  �  �  �  � 

Page 24: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

如何设计存储 � 

TraceID �  SpanID �  服务名 �  IP �  CS �  SR �  SS �  CR �  KV � 

UUID �  层次编号 � 0.1 �  类名.方法名 �  IP地址 �  时间 �  时间 �  � 

时间 �  时间 �  自定义 � 

l  HBase设计 � ü  HBase � Rowkey设计,满足数据均匀分布,无热点存储 � ü  Rowkey由TraceID+SpanID拼接而成(TraceID是UUID字符串) � 

l  Phoenix表设计 � ü  增加索引(时间、服务名、应用名等) � 

ü  每个Span保持一条记录 � 

l  不同机器日志的合并 � ü  一个Span跨越不同的主机日志,通过HBase存储合并到一条记录 � ü  SR、SS和CS、CR字段由不同的机器日志填充 � 

� 

Page 25: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

决策分析 � 

系统调用链路拓扑分析 � 

系统响应时间和超阈值分析 � 

服务依赖和关键路径分析 � 

系统异常、QPS、趋势分析 � 

应用服务 (统计任务) SQL引擎 �  HBase � 

MySQL � 

Dashboard � 

l  统计类别 � 

l  统计任务 � 

Page 26: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

�  �  �  � 界面-调用链路 �  � 

  �  �  �  �  �  �  �  �  �  � 

�  �  �  �  � 

Page 27: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

�  �  �  � 界面-调用链路 �  � 

  �  �  �  �  �  �  �  �  �  � 

�  �  �  �  � 

Page 28: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

�  �  �  � 界面 � – � 调用次数和QPS对比 �  � 

  �  �  �  �  �  �  �  �  �  � 

�  �  �  �  � 

Page 29: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

�  �  �  � 界面 � – � 系统平均响应时间 �  � 

  �  �  �  �  �  �  �  �  �  � 

�  �  �  �  � 

Page 30: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

�  �  �  � 界面 � – � 周报比对 �  � 

  �  �  �  �  �  �  �  �  �  � 

�  �  �  �  � 

Page 31: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

驭风系统价值 � 

系统性能“可视化” � 

调用链路“拓扑”关

系 � 

服务 � 关键路径 � 

快速故障定位 � 

趋势预测与 � 扩容 � 的基础 � 

Page 32: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

总结与展望 � 3 � 3

Page 33: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

总结 � 

l  客户端 � ü  中间件埋点 � ü  异步数据传输 � ü  可控性 � 

l  服务端 � ü  流式计算 � ü  海量存储 � 

ü  高速查询 � 

l  决策分析 � ü  分析报表 � ü  趋势预测 � 

l  行业解决方案 � ü  淘宝 � – � Egale � Eye � ü  Twitter � - � Zipkin � ü  点评 � – � CAT � 

ü  新浪微博 � – � Watchman � ü  唯品会 � - � Mercury � 

Page 34: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

未来展望 � 

�  � 弹性计算 � & 动态扩缩容 � 提高资源利用率 � 

预测优化系统瓶颈 &故障报警自动处理

智能化

Page 35: 驭风-搜狗分布式追踪系统 - s.itho.me©风-搜狗分布式追踪... · 董泽光,搜狗架构师 专注于互联网基础架构设计、分布式存 储与计算;对大数据体系,实时计算,

Thanks �