解决低成本存储分布式链路跟踪数据的问题
现有公司在使用的 Skywalking 的存储是基于ElasticSearch实现,
- ElasticSearch 为通用型的搜索解决方案,代码量巨大,对于tracing 日志型存储没有专项的优化,调优维护起来难度较高。 (一些针对特定场景型的优化改动起来难度较大)
- Tracing存储场景较为简单,数据只写不读,而且数据有时序特征,方便做针对性的存储优化和查询优化
- 基于Rust语言的实现的项目安全并且性能更高,基于Rust实现的高性能存储,分析的框架最近层出不穷,大量新的标准和新的设计,Tantivy,Arrow项目等,都可以作为 基础依赖的框架,基于这些框架来实现目标会更为方便容易。
- Rust技术积累需要,完整实现此类项目可以很好锻炼编码能力。
- Stage1 (Working On): 基于Tantivy实现多机器存储, 多条件分布式查询tracing数据的能力
- 数据传输层实现
- tracing 存储多机器分片
- 对接存储对接
- k8s调度对接(服务器down掉存储自动挂载)
- 历史数据自动搬运
- 分布式搜索能力
- Stage2: 接入DataFustion能力,实现SQL查询tracing数据能力