用途:当标准 otelcol/otelcol-contrib 发行版不满足需求时,用 OCB 从 YAML 清单生成并编译只包含所需组件的自定义 Collector 二进制,例如需要任何发行版都不提供的组件、私有/本地组件,或仅含实际运行组件的精简二进制。
主要能力:安装 OCB(版本需与目标 Collector 核心版本一致,发布包二进制名为 ocb,go install 后为 builder,如 go install go.opentelemetry.io/collector/cmd/builder@v0.162.0);编写含 dist 块与 receivers/processors/exporters/providers 列表的清单;对齐三类版本流(核心与 contrib 组件用 v0.x.0,confmap providers 等稳定模块用 v1.y.0,contrib 稳定集用 v1.x);用 ocb --config=builder.yaml 构建;生成 main.go、components.go、go.mod 等并输出 dist 二进制。
用法要点:providers 键省略则保留内建默认集,一旦显式设置即替换默认集,未包含 envprovider 时需另设默认 provider 否则配置校验失败。可用 --skip-compilation 只生成源码,--skip-generate --skip-get-modules 编译既有源码;--skip-strict-versioning 默认为 true,版本不匹配会表现为 Go 模块解析错误。构建后运行 ./dist/<name> validate --config=<collector-config>.yaml 并发送测试数据验证。
适用与限制:本技能聚焦构建发行版;单个组件配置、新组件编写与测试流量生成分别见 otel-collector、组件编写指南与 otel-telemetrygen。版本必须带 v 前缀,版本对齐是首要失败原因。