得物全栈可观测平台落地实践
如果无法正常显示,请先停止浏览器的去广告插件。
1. 得物全栈可观测性平台
落地实践
得物App监控平台 李尊
2.
3. 目录
• 得物可观测平台
演进史
• 全链路追踪大规模落地实践
4. 得物可观测平台 演进史
5. 得物可观测平台
发展历
程
2021前
2021年
开源方案
产品化萌芽
✓ 应用监控1.
✓ Lok
✓ Prometheu
•
VictoriaMetric
✓ Jaeger(采样率3%
组合采样策略
•
✓ Grafana
• 指标中心
• 告警模版
• 上下游分析
• 异常分析(Java
• 排查工具(热点分析
➢ Redis热点分析
➢ RDS热点分析
2022年
产品化&数据治理
✓ 架构升级&降本增效
✓ 应用监控2.0(Java/Go/FE
•
Trace2.0 (100%采样、冷热
存储
• 前端监控 (0->1、端到端
• 鲁班(自建Dashboard
• 异常分析2.0(Go
• Metric、Trace、Log支
持联动和下钻分析
2023年~
挑战
✓ 基础服务监控标准化(中间
件/K8S
✓ 以应用为中心的可观测性
✓ 全息监控(服务治理)
6. 全栈可观测平台全景图
系统治理
1-5-10
NOC-SLA
端监控
应用监控
基础服务
云资源层
C端
Android
ECS
Golang
NAT
EIP
大数据
高防
“ 五横
流量拓扑(分钟级)
PC浏览器
Node.js
数据库
DAL层
OSS
资损
端内H5
iOS
Java
接入层
供应链
B端
”
纵
三
用户体验
Python
服务发现
SLB
小程序
C++
K8S
Privatelink
全
链
路
追
踪
(Tr
ace
)
告
警
元
数
据
异
常
事
件
智能预测
时序检测
日志聚类
7. 链路追踪大规模落地实践
8. 为什么选择OpenTelemetry
• 采用字节码增强
• 统一数据协议
• 兼容性良好(兼容主流)
• 厂商中立
9. 分布式链路追踪Trace2.0架构
• 集 成 O p e n Te l e m e t r y S D K
• 控制平面
•
•
•
•
支持灰度
版本管理
动态参数
...
• 接入层 & 计算层
• 存储层
10. Trace2.0提供了哪些能力
• 保存所有有价值 Trace 的完整链路
• 增强各监控类型数据之间的关联
• 字节码方式、无缝升级
• 支持请求出入参收集
• 热点分析(大 Key\ 慢 SQL )
• 支持诊断工具( arthas )
• 支持 SpanMetric 统计(分位线)
• 支持自定义埋点(单号关联)
• ...
11. 降本增效之Trace存储发展历程
存储业务高频访问数据
1. 性能高
热数据层
2. 容量低
存储业务低频访问数据
冷数据层
Object
Storage
1. 性能低
2. 容量高
存储3.0
对象存储
存储2.0
存储1.0
ClickHous
spanIndex表
spanData表
冷热存储
尾部采样
Kafka延迟消费
BloomFilter
Clickhouse + OS
(索引和明细分离)
块存储
ZSTD压缩
追加写
12. 分布式链路追踪 一 冷热存储
✓ 全量采集
✓ 尾部采样
✓ Kafka 延迟消费
✓ BloomFilter 编码
13. 分布式链路追踪 一 对象存储 写入流程
对象存储
File
Block
File
Compressio
(ZSTD)
Span
MemBlock
Immutabl
MemBlock
Block
追加写
File
Block
...
Block
File
Block
File
Block
File
14. 分布式链路追踪 一 对象存储 查询流程
Query
1. traceId = xxxx
Clickhouse
OSS
2. 根据TraceID查询
Span都在哪些OSS文件
里面
3. 将Span对应的文件块
下载到本地
备注:
filename: OSS所在的文件名
blockOffset: block块在文件的偏移量
messageOffset: span在block块内偏移量
15. 性能优化
• ClickHouse 本地表批量写
• TraceSegment 写入
• 并发查询
16. 分布式链路现阶段实施效果
• 吞吐量:12M Span/秒(采样率100%)
• 查询效率:Trace点查 P50 < 300ms,P90查询 < 800ms
每百TB
每天只需十块
• 存储资源:700+TB (日增数据量)(ZSTD压缩比
12:1)
总存储:热存 TTL:6天
4PB存储 (压缩前)
冷存
TTL:30天
• Clickhouse写入:单机40w/秒
1PB存储 (压缩前)
Trace存储成本
同比下降90%
17. 小结
• 得物可观测性平台面临的挑战和机遇
• Trace成为可观测数据的链接纽带
• 得物分布式链路追踪的落地实践
• Trace存储引擎的发展历程
18. 可观测性平台 一 前端监控
• 接口分析
• ⻚面分析
• 会话跟踪
• JS 异常分析
19. 可观测性平台 一 容器监控
• 集群总览
• 资源池监控
• Node 监控
• Pod 监控
• 控制面监控
• 插件监控
20. 可观测性平台
一 应用监控(接口分
析)
• 接口分析
• 实例分析
• 接口耗时分解
• 接口(服务)上下游分析
接口耗时分解
接口分析
21. 可观测性平台
一 应用监控(异常分
析)
异
常
分
析
RDS
热
点
分
析
业
务
码
分
析
Redi
热
点
分
析
22. 可观测性平台
一 应用监控(链路追
踪)
API接口分析⻚内嵌Trace检索⻚
Trace高级检索⻚
Trace关联<业务单号>
点击查看“创单”的Trace
单号搜索⻚
Trace详情⻚
23. 可观测性平台 一 Trace详情⻚(1)
Trace详情⻚ – 概览
Trace详情⻚ – 聚合分析
Trace详情⻚ – 列表模式
24. 可观测性平台 一 Trace详情⻚(2)
单Span详情⻚
Span详情下钻关联指标和日志
25. 可观测性平台 一 告警平台
模
板
管
理 规
则
管
理
通
知
组
管
理 告
警
历
史
26. 加入我们团队
联系我
27. THANKS