概述
强烈建议先看论文知道背景
google dapper 原文
论文注意事项
定义:
理解span,parent span, context,采样率,监控成本以及代码改动成本
上下游时间节点:SendStart, SendEnd, RecvStart,RecvEnd,SendEnd,RecvEnd等
图
从上至下的请求
span信息的传递与记录
client和server各个时间点的理解
数据通过log流转,分析,收集到bigtable
架构实现注意事项
1.中间件注入以及注解
这个视情况而已,注入公司内部不同的框架,比如rpc框架,或者封装的redis,mysql等
2.收集日志:
如logstash等收集span信息,发送kafka消息
3.处理日志消息
消息kafka等,根据traceid,上下游标志,各种时间点还原一条span信息,记录在hive,hdfs,mysql,redis等
4.前端UI查询出对应结果
nodejs等从上述存储引擎拉数据
思考
除了trace之外还能监控什么?
比如可以监听requestLen以及responseLen,可以监控1次上游调用了多少次下游,有无重复的下游,这样来提供代码优化的建议
refer
https://blog.frognew.com/2016/01/understand-distributed-tracing.html
https://bigbully.github.io/Dapper-translation/
https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/36356.pdf