用途:为应用接入 OpenTelemetry SDK,并用本地运行的 Kopai 后端验证遥测数据质量。核心思路是“先发出宽事件,再证明它们是对的”——span 被视为一条扁平记录,承载一个工作单元的完整上下文;Kopai 运行在 localhost,因此可以自己驱动流量并断言实际到达的数据,只有 validate-traces 中所有断言通过才算完成。
主要能力:提供分步工作流(启动后端、配置环境、埋点、驱动流量、断言、修复),并配有按任务加载的规则文件,覆盖 setup-backend、setup-environment、各语言 SDK(Node.js、Fastify、Next.js、Python、Go、Java、.NET、Ruby、PHP、Rust、Erlang、C++)、埋点判断(instrument-spans、instrument-attributes、instrument-errors、context-propagation、layered-telemetry、sampling)、验证(drive-traffic、validate-traces、validate-logs、validate-metrics、validate-shutdown)与排错(troubleshoot-no-data、troubleshoot-missing-spans、troubleshoot-missing-attrs、troubleshoot-wrong-port)。
使用方式:先启动后端 npx @kopai/app start,并用 curl 检查 http://localhost:4318/v1/traces 返回 2xx;再导出 OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_SERVICE_NAME 和 validation.run_id;随后按语言规则埋点,自行驱动流量(覆盖每个入口并至少制造一次失败),运行验证断言,红色断言则进入排错并回到驱动流量步骤,形成循环。安装依赖时先检测包管理器(package.json 的 packageManager 优先,否则按锁文件判断),避免混用产生第二个锁文件;npx @kopai/cli 验证命令与包管理器无关。
适用场景:为无遥测的服务从零接入;向已有代码库改造 OTel(建议先做 context-propagation);排查数据未到达的问题。
限制:资料未提供收费、价格、平台支持范围或效果保证等信息;span 命名需低基数,ID 应作为属性而非 span 名;弃用检查应查注册表而非安装输出。