SuperAPI AI 工具集

otel-weaver

通用与其它

查看项目

更新于 10-16 02:37

技能介绍

用途:帮助组织在上游 OpenTelemetry 语义约定之上定义自有语义约定,编写 registry、生成语言绑定,并在 CI 中强制校验。

主要能力:围绕三部分展开。Registry 为 YAML 目录,manifest.yaml 必需,其 schema_url 命名并携带版本;其余文件声明 attributes、metrics、spans、events、entities。Templates 为 MiniJinja 模板目录,每个目标语言一个 weaver.yaml 描述运行哪些模板、过滤条件、application_mode 与输出文件名。Policies 为 Rego 规则,由 Regorus(兼容 OPA)引擎在 before_resolution、after_resolution、comparison_after_resolution、live_check_advice 四个包中求值。

使用方式:按上游说明安装 Weaver(发布二进制、otel/weaver:vX.Y.Z Docker 镜像或 setup-weaver GitHub Action),切勿使用 brew install weaver。编写 registry 与模板后,用 weaver registry check --v2 -r ./telemetry/registry/ 快速校验,用 weaver registry generate --v2 --registry ./telemetry/registry/ --templates ./telemetry/templates/ <lang> <output-dir> 生成代码,并对输出运行语言格式化工具。CI 设三道门:check、generate 后 git diff --exit-code、与基线分支 diff。

适用场景:组织自建语义约定、从手写常量迁移到 registry、生成多语言绑定、在 CI 中防止约定漂移。

限制与注意:上游边界域(http、db、messaging、rpc、network、gen-ai 等)应引用而非本地重声明;每个定义与枚举成员需 stability;组织本地属性/指标/跨度需域前缀;Counter 与 UpDownCounter 名称不加 _total;时长直方图用秒。v0.26.1 对自定义 v2 定义会输出“definition/2 尚未稳定”警告,属正常。发布 registry 制品、声明上游依赖、live-check/emit/infer、mcp/serve、自定义 Rego 策略、辅助函数代码生成均不在本技能范围内。若配套技能不可用,应查阅 Weaver 仓库与文档并说明所用回退方案。