用途
本技能提供配置和部署 OpenTelemetry Collector 的专家指导,用于接收、处理和导出遥测数据(traces、metrics、logs)。适用于搭建 Collector 管道、配置 receivers、exporters、processors、pipelines,以及选择部署方式等场景。
主要内容
技能按规则(rule)组织,涵盖以下主题:
- receivers:OTLP、Prometheus、filelog、hostmetrics
- exporters:OTLP/gRPC 到 Dash0、debug、认证
- processors:memory limiter、资源检测、排序、发送队列
- pipelines:service 段、按信号配置、connectors
- deployment:agent 与 gateway 模式、部署方式选择
- dash0-operator:Dash0 Kubernetes Operator,自动化埋点、Collector 管理、Dash0 导出
- collector-helm-chart:Collector Helm chart,presets、模式、镜像选择
- opentelemetry-operator:OpenTelemetry Operator,Collector CRD、自动埋点、sidecar
- raw-manifests:原始 Kubernetes 清单,DaemonSet、Deployment、RBAC、Docker Compose
- sampling:head、tail、负载均衡采样
- red-metrics:基于 span 推导请求速率、错误率、持续时间直方图的 RED 指标
- custom-distributions:使用 OCB 构建精简版 Collector 二进制
核心原则
- processor 顺序很重要:memory_limiter 应放在每个 pipeline 的第一位;使用 exporter 的 sending_queue 配合 file_storage,而非 batch processor。顺序错误会导致内存耗尽或数据丢失。
- 每种信号类型一个 pipeline:为 traces、metrics、logs 分别定义独立 pipeline。在单个 pipeline 中混用信号会破坏处理并引发运行时错误。
- 每个声明的组件都必须出现在 pipeline 中:Collector 会拒绝声明了未被任何 pipeline 引用的 receivers、processors 或 exporters 的配置。
- 跨 pipeline 一致的资源增强:将 resourcedetection、k8sattributes 等增强资源属性的 processor 应用到每个信号 pipeline(traces、metrics、logs),而非只应用到一个。
- 内存安全不可妥协:生产中始终配置 memory_limiter。否则突发的遥测流量可能导致 Collector OOM 崩溃。
快速开始
最小可用配置:OTLP receiver → memory limiter → 到 Dash0 的 OTLP/gRPC exporter。
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318
processors:
memory_limiter:
check_interval: 1s
limit_mib: 400
spike_limit_mib: 100
exporters:
otlp:
endpoint: ingress.eu-west-1.aws.dash0.com:4317
headers:
Authorization: "Bearer ${env:DASH0_TOKEN}"
sending_queue:
enabled: true
storage: file_storage
service:
pipelines:
traces:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]
metrics:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]
logs:
receivers: [otlp]
processors: [memory_limiter]
exporters: [otlp]
完整认证与队列配置参见 exporters 规则;添加资源检测参见 processors 规则。
配置工作流
- 编写配置:定义 receivers、processors、exporters,并在 service.pipelines 中连线。
- 本地验证:运行
otelcol validate --config=config.yaml在部署前捕获结构性错误。 - 部署:从 deployment 规则中选择部署方式(Helm、Operator、原始清单或 Docker Compose)。
- 验证:临时将 debug exporter 加入 pipeline 并检查 stdout 以确认遥测数据流通,然后在上生产前移除。
快速参考
- 从应用接收 OTLP 遥测 → receivers
- 抓取 Prometheus 端点 → receivers
- 采集日志文件或主机指标 → receivers
- 将遥测发送到 Dash0 → exporters
- 配置重试、队列或压缩 → exporters
- 设置 processor 顺序 → processors
- 添加 Kubernetes 或云元数据 → processors
- 连接 receivers → processors → exporters → pipelines
- 完整的可用配置 → pipelines
- 用 debug exporter 验证 pipeline → collector-helm-chart、opentelemetry-operator、raw-manifests 或 dash0-operator
- 以 DaemonSet 或 Deployment 部署 → raw-manifests
- 用 Helm 部署 → collector-helm-chart
- 用 OTel Operator 部署 → opentelemetry-operator
- 用 Dash0 Operator 部署 → dash0-operator
- 在 Kubernetes 中自动埋点应用 → opentelemetry-operator 或 dash0-operator
- 使用 Docker Compose 进行本地开发 → raw-manifests
- 减少 trace 量 → sampling
- 保留错误和慢 trace、丢弃其余 → sampling
- 在 pipeline 中脱敏敏感数据 → processors
- 从 traces 生成 RED 指标 → red-metrics
- 构建自定义 Collector 二进制 → custom-distributions
官方文档
- OpenTelemetry Collector 文档
- Collector 配置
- Collector contrib 组件
- Dash0 Integration Hub
限制
资料未提供本技能的收费、价格、平台支持范围、效果承诺或具体使用步骤的更多细节。