Kiali项目中Tempo集成时Span引用信息缺失问题分析
问题背景
在Kiali与分布式追踪系统Tempo集成时,发现了一个关于Span引用信息的技术问题。当使用Tempo作为外部追踪系统时,从Kiali API获取的Span对象中缺少References信息,而同样的配置下如果使用Jaeger端口则能正常显示这些引用关系。
技术现象
通过Kiali的API端点查询Span数据时,当配置使用Tempo原生端口3200并设置provider为tempo时,返回的Span对象中References数组为空。而当配置使用Jaeger端口16685时,相同的Span数据则包含完整的References信息。
根本原因分析
经过技术团队深入调查,发现这个问题源于Tempo查询机制与Jaeger的差异。Tempo的查询接口在设计上无法返回parentSpanId字段,而这个字段正是构建References数组的关键数据。References数组在分布式追踪中用于表示Span之间的父子关系或跟随关系。
在Kiali内部实现中,References信息是通过parentSpanId转换而来。由于Tempo的返回数据格式与Jaeger不同,需要进行数据格式转换。但在当前实现中,这种转换未能正确处理parentSpanId字段。
影响评估
虽然References信息缺失,但经过评估这并不影响Kiali的核心功能。References数组在这些API调用中实际上并未被使用,因此从功能角度来看是完整的。技术团队考虑过获取完整追踪数据的方案,但考虑到性能开销(需要为每个查询结果发起多次调用),这种方案被判定为不切实际。
解决方案
技术团队提出了两种可能的解决方案:
-
移除对References数组的检查:由于这些信息在相关API调用中并未实际使用,可以直接移除相关检查逻辑。
-
针对Tempo做特殊处理:在代码中区分Tempo和Jaeger的情况,仅对Tempo返回的数据跳过References检查。
经过权衡,技术团队倾向于第一种方案,因为References信息在这些API调用中并非必需,且保持代码简洁性更为重要。
后续处理
该问题已被标记为需要回迁至Kiali 2.4版本,相关修复已经完成并合并。这确保了使用Tempo作为追踪系统的用户能够获得与其他追踪系统一致的使用体验。
技术启示
这个案例展示了不同分布式追踪系统实现细节上的差异,以及在集成多个追踪系统时可能遇到的兼容性问题。对于开发者而言,在设计系统集成时需要考虑不同实现的技术细节,同时也要评估功能需求与实际使用场景,避免过度设计。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00