Tracing in TiDB 浅谈全链路监控:
从应用到数据库到 Runtime
3.43 MB
39 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
中文(简体) | .pdf | 3 |
摘要 | ||
文档主要阐述了在TiDB中实现全链路监控的方法,核心思想是通过传递Tracer ID和Span Context到TiDB内核,具体实现包括设置Session Variable、序列化Tracer信息、在TiDB内部反序列化并生成新的Context等。文档还介绍了Jaeger client对gRPC的支持,并讨论了分布式Tracing面临的挑战,如领域知识的复杂性、跨团队语言服务的协作、性能损耗等。最后,通过一个真实案例展示了如何通过监控解决应用卡顿问题。 | ||
AI总结 | ||
## 《Tracing in TiDB 浅谈全链路监控:从应用到数据库到 Runtime》总结
本文主要探讨了在TiDB中实现全链路监控的核心思想、技术实现及实际应用,以下是总结:
### 核心思想
将Tracer ID和Span Context传递到TiDB内核,以实现全链路监控。具体方法包括:
1. 添加Session Variable,语法如:`SET @@tidb_tracer_id=xxxxxx;`
2. 应用端序列化Tracer ID和Span Context,传递至TiDB。
3. TiDB内核反序列化生成新Context。
4. TiDB与TiKV间的gRPC通信受Jaeger支持,因其良好支持序列化/反序列化,提供了`String()`和`ContextFromString()`方法。
### 分布式Tracing挑战
面临的问题包括:
1. 领域知识和业务强相关,难以熟悉每个模块。
2. 跨越多团队、语言、服务、模块和物理机。
3. 业务侵入性和性能损耗。
4. 实时性需求,需在秒级别内有效。
### 真实案例
通过案例展示了前端开发、后端开发和DBA在问题定位上的困境,凸显全链路监控的重要性。案例中,REST API延迟问题最终被定位至应用层而非数据库,说明监控的必要性。
### 技术总结
TiDB的设计理念体现了 PingCAP 公司对开源和分布式数据库的专注。公司分布式的团队结构(覆盖多地)促进了TiDB的开发和火爆 conhecimento。
### 其它内容
Tracing runtime虽有缺点(需维护Go分支),但 PingCAP正在探索优化方案,包括利用eBPF等技术替代现有方案。
---
以上总结涵盖了文档的核心内容,保持了逻辑连贯,突出重点信息,语言简洁明了。 |
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余
32 页请下载阅读 -
文档评分