Prhub

#21740 [CI] [Tracing] Add ci for tracing and fix bugs

原始 PR 作者 sufeng-buaa 合并时间 2026-04-03 01:50 文件变更 7 提交数 4 评论 7 代码增减 +1037 / -319

执行摘要

添加跟踪集成测试至 CI 并修复 tokenizer manager 中的 bug。

根据PR body,动机是'Implement a simple OpenTelemetry Collector and added tracing integration tests to CI',并修复一个追踪bug,以提升测试效率和可靠性。

建议CI维护者和测试工程师精读此PR,重点关注轻量级OTLP收集器的设计、测试优化技巧以及安全绑定实践,以借鉴于其他基础设施测试中。

讨论亮点

review中gemini-code-assist[bot]提出三点核心建议:

1) 安全:将OTLP收集器绑定地址从0.0.0.0改为127.0.0.1,避免网络暴露风险;
2) 性能:优化_protobuf_to_dict函数使用ListFields()仅提取设置字段,减少数据冗余;
3) 性能:减少setUp方法中的check_interval从2秒到更短以加速CI执行。sufeng-buaa回应了第三点,调整逻辑为三次连续空检查。讨论聚焦于测试效率和安全配置。

实现拆解

实现包括:

1) 修复tokenizer_manager.py中的convert_to_span_attrs函数,添加类型检查防止对BatchEmbeddingOutput访问completion tokens;
2) 修改scripts/ci/cuda/ci_install_dependency.sh,在EXTRAS中添加'tracing'依赖;
3) 移除test/manual/test_tracing.py旧手动测试;
4) 新增test/registered/observability/test_tracing.py和test_tracing_disaggregation.py自动化测试文件,实现轻量级OTLP收集器并覆盖trace levels、批处理请求、并行采样和PD分离模式;
5) 重命名metrics测试文件以统一observability模块组织。

文件 模块 状态 重要度
python/sglang/srt/managers/tokenizer_manager.py observability/tracing modified 4.0
scripts/ci/cuda/ci_install_dependency.sh ci modified 3.0
test/registered/observability/test_tracing.py observability/tracing added 6.0
test/registered/observability/test_tracing_disaggregation.py observability/tracing added 5.0

关键符号

convert_to_span_attrs LightweightOtlpCollector.__init__ LightweightOtlpCollector._protobuf_to_dict TestTraceServer.setUp

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

OTLP 收集器绑定地址安全优化 安全

gemini-code-assist[bot] 建议将绑定地址从 0.0.0.0 改为 127.0.0.1,避免本地网络暴露风险。

结论:建议被提出但未在 review 中明确采纳结论,需在代码中验证。 · 讨论中

protobuf 数据提取性能优化 性能

gemini-code-assist[bot] 建议使用 ListFields() 替代迭代所有字段,减少数据冗余和提升效率。

结论:建议被提出,可能已采纳以提高测试数据清洁度。 · 讨论中

测试间隔优化以加速 CI 性能

gemini-code-assist[bot] 建议减少 check_interval,sufeng-buaa 回应调整逻辑为三次连续空检查。

结论:sufeng-buaa 采纳并修改实现,优化测试执行速度。 · 已解决

风险与影响

技术风险包括:

1) 新测试可能增加CI执行时间,但优化后影响可控;
2) 绑定地址更改可能导致本地网络配置问题,需确保所有端点和连接一致使用localhost;
3) protobuf提取优化可能引入数据解析错误,需验证测试断言;
4) 测试覆盖虽广,但可能遗漏边缘场景,如高并发或异常路径。

影响范围:

1) 对用户:透明,主要提升系统稳定性和调试能力;
2) 对系统:增强跟踪功能测试覆盖,提高CI可靠性,修复bug避免嵌入输出中的token计数错误;
3) 对团队:简化测试部署(无需Docker),加速开发迭代,但需关注新测试框架的维护成本。

测试性能影响 网络安全配置 数据解析优化风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论