用途:审查 Java OpenInference 埋点包是否符合项目既有模式与约定,输出按严重程度(Critical / High / Medium / Low)分级的发现,并附文件路径与行号。
主要能力与流程:
- 确定待审查包,位于 java/instrumentation/openinference-instrumentation-<name>/,阅读埋点源码、build.gradle 与 src/test/。
- 以被埋点库源码为准,先读库源码再下结论。从 java/build.gradle 的 ext 块获取库版本,检查 ~/.gradle/caches/modules-2/files-2.1/ 缓存,必要时从 Maven Central(repo1.maven.org)下载 sources jar;若无法获取源码,需明确告知用户未能对照库源码验证。
- 按四个部分审查:Gradle 配置(被埋点库须为 compileOnly、openinference-instrumentation 须为 api、版本常量放根 ext 块、模块须在 java/settings.gradle、运行 cd java && ./gradlew spotlessCheck);测试模式(穷尽式属性断言与 remove-and-verify、空断言、错误处理、上下文属性传播、TraceConfig 掩码);OpenInference 语义约定(读取 SemanticConventions.java 与 spec/ 下规范,检查 span kind、输入输出值及 MIME 类型、常量使用、TraceConfig 隐藏标志);Span 生命周期与层级(span.end() 必须调用、Scope 用 try-with-resources 关闭、父子嵌套与共享 traceId、使用 OITracer)。
- 以严重程度表格呈现发现,列出做得好的地方,并询问用户:修复问题、运行测试(./gradlew :instrumentation:...:test)或结束。
适用场景:审查新增或已有的 Java OpenInference 埋点包。
限制:需能获取被埋点库源码才能可靠定级;严重程度依据库实际行为校准。资料未提供具体收费、价格或平台信息。