SuperAPI AI 工具集

dtwiz-otel

部署与运维

查看项目

更新于 10-16 08:36

技能介绍

用途:为 dtwiz 项目开发 OpenTelemetry(OTel)支持提供开发指导。核心流程是下载 OTel Collector 二进制、对运行中的应用(Java、Python、Node.js、Go)做自动插桩,并在 Dynatrace 中观察是否成功摄入数据。

主要能力:安装编排 InstallOtelCollectorWithProject() 负责校验 DT 凭据、准备采集器计划、检测可用运行时、并行扫描项目、生成运行时计划、预览确认后执行,最后通过 WatchIngest() 轮询 DQL 直到用户退出。各运行时实现统一接口:项目检测(如 pom.xml、requirements.txt、package.json)、进程匹配与富化、计划构建 buildXxxInstrumentationPlan(),并提供 Runtime()、PrintPlanSteps()、Execute()。ManagedProcess 统一管理子进程的 PID、端口探测、日志与退出状态。卸载流程基于启发式清理:查找并结束采集器进程、扫描安装目录、检测被插桩进程、预览确认后删除。

使用方式:凭据仅通过环境变量提供,DT_ENVIRONMENT 为环境地址,DT_PLATFORM_TOKEN(dt0s16.)必填,访问令牌(dt0c01.)需显式传 --access-token。注入的 OTel 变量包括 OTEL_SERVICE_NAME、OTEL_EXPORTER_OTLP_ENDPOINT、OTEL_EXPORTER_OTLP_HEADERS、OTEL_EXPORTER_OTLP_PROTOCOL(http/protobuf)、OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE(delta)。采集器配置写入 ./opentelemetry/config.yaml,二进制位于 ./opentelemetry/。默认运行时有限,可用 DTWIZ_ALL_RUNTIMES 或 --all-runtimes 启用全部。

适用场景:dtwiz 的 OTel 插桩功能开发、测试与维护,跨 Unix/Windows 的进程检测,以及基于构建标签的单元与集成测试。

限制:Go 仅提供手动 SDK 说明,无自动插桩;进程检测逻辑依运行时与操作系统而异,Unix 与 Windows 路径分离维护;绝不可将密钥写入磁盘,API 令牌只能通过进程环境传入;插桩前需先停止已运行进程,并确保前置产物存在(如 Node.js 的 node_modules/、Nuxt 的 .output/server/index.mjs),否则快速失败并给出修复提示;OTEL_SERVICE_NAME 按入口点区分。