用途:为 OpenTelemetry 埋点提供已发布语义约定的查询与命名指导,适用于选择已发布的语义约定组、属性或 span 命名规则,以及做合规性检查。
主要能力与用法:
- 从已发布的语义约定出发,而非依赖模型记忆;不要将完整语义约定规范加载进上下文。
- 使用捆绑脚本按需查询已发布的组或属性:列组用 ./scripts/query-otel-semantic-conventions.sh --groups;查某组用 ./scripts/query-otel-semantic-conventions.sh http;查某类型用 ./scripts/query-otel-semantic-conventions.sh http spans;查精确属性用 ./scripts/query-otel-semantic-conventions.sh http http.request.method。
- 需要对照本地已检出上游仓库验证时,设置 OTEL_SEMCONV_REPO=/path/to/semantic-conventions。
- 修改解析器后运行 OTEL_SEMCONV_REPO=/path/to/semantic-conventions bash ./scripts/test-query-otel-semantic-conventions.sh。
命名与属性规则:
- 先选最接近的已发布组,再考虑自定义键;先确定边界类型(如 http、db、messaging、rpc、network),优先选一个主组,仅当能补充必要上下文时再加相关组。
- gen_ai.*、OpenAI 或 MCP 约定请使用专门的 OpenTelemetry GenAI 语义约定仓库;核心仓库在 v1.42.0 之后只保留已弃用的 GenAI 时代存根。可参阅 references/semconv-selection.md 与 references/otel-semantic-conventions.md。
- 优先使用必填与推荐属性,再考虑可选属性;semconv 管理的 span 名应直接依据已发布命名规则推导,不要前置或附加协议标签、主机名、产品名、业务提示等自定义内容;若已发布规则未提供低基数目标,使用该约定允许的更简单回退;若无已发布键,则使用稳定自定义命名空间并保持取值有界。
限制:返回结果需附带脚本输出中的组名、已发布版本与源 URL;若实现无法完全匹配已发布指导,需指出具体兼容性限制。其余未在资料中说明的内容暂未提供。