SuperAPI AI 工具集

otel

部署与运维

查看项目

更新于 10-16 03:44

技能介绍

用途:为 Copilot Chat 扩展添加、修改或评审 OpenTelemetry 遥测时使用,确保实现与 extensions/copilot/docs/monitoring/ 下的用户文档与架构文档保持一致。

主要能力:覆盖四条智能体执行路径——前台工具调用循环直接使用 IOTelService span;进程内 Copilot CLI 经 Bridge SpanProcessor 转发 SDK 原生 span;终端 CLI 仅转发 OTel 环境变量;Claude Code 通过拦截 SDK 消息流合成 GenAI span 并代理模型调用产生 chat span。统一 IOTelService 抽象,提供 NodeOTelService、InMemoryOTelService、NoopOTelService 三种实现,按 resolveOTelConfig().enabled 绑定。约定 invoke_agent、chat、execute_tool、execute_hook 等操作名与 gen_ai.、github.copilot.、copilot_chat.* 属性命名空间及双发规则。

使用方式:新增属性需在 genAiAttributes.ts 加常量、在 index.ts 导出、经 truncateForOTel 处理,并按需加入 EXPORTABLE_OPERATION_NAMES;新增指标或事件需写入 genAiMetrics.ts/genAiEvents.ts 并补文档与单测;配置变更需同步 package.json、otelConfig.ts、文档及 derive*OTelEnv。验证命令:npx tsc --noEmit --project tsconfig.json 与 npm test -- --grep "OTel|Bridge"。

限制:Bridge 依赖 SDK 内部 _spanProcessors 状态,属已知风险,需保留运行时守卫;同进程可能出现两个 TracerProvider;CLI SDK 需在构造前修改 process.env;captureContent 单一开关同时影响调试面板与 OTLP;Claude SDK 无文件导出器,CLI 运行时仅支持 otlp-http。禁止直接导入 @opentelemetry/*、硬编码属性键或字符串、绕过 truncateForOTel 或 enum。