SuperAPI AI 工具集

otel-collector

部署与运维

查看项目

更新于 10-15 12:37

技能介绍

用途

本技能提供配置和部署 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 规则。

配置工作流

  1. 编写配置:定义 receivers、processors、exporters,并在 service.pipelines 中连线。
  2. 本地验证:运行 otelcol validate --config=config.yaml 在部署前捕获结构性错误。
  3. 部署:从 deployment 规则中选择部署方式(Helm、Operator、原始清单或 Docker Compose)。
  4. 验证:临时将 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

限制

资料未提供本技能的收费、价格、平台支持范围、效果承诺或具体使用步骤的更多细节。