Kubernetes 的 OpenTelemetry Operator

一个 Kubernetes Operator 的实现,它使用 OpenTelemetry 仪表化库来管理 Collector 和工作负载的自动仪表化。

简介

OpenTelemetry Operator 是一个 Kubernetes Operator 的实现。

该 Operator 管理

入门

要在现有集群中安装 Operator,请确保已安装 cert-manager 并运行

kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

一旦 opentelemetry-operator Deployment 准备就绪,创建一个 OpenTelemetry Collector (otelcol) 实例,例如

$ kubectl apply -f - <<EOF
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: simplest
spec:
  config:
    receivers:
      otlp:
        protocols:
          grpc:
            endpoint: 0.0.0.0:4317
          http:
            endpoint: 0.0.0.0:4318
    processors:
      memory_limiter:
        check_interval: 1s
        limit_percentage: 75
        spike_limit_percentage: 15

    exporters:
      # NOTE: Prior to v0.86.0 use `logging` instead of `debug`.
      debug: {}

    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [memory_limiter]
          exporters: [debug]
EOF

有关更多配置选项以及如何设置使用 OpenTelemetry 仪表化库对工作负载进行自动仪表化注入,请参阅 Kubernetes 的 OpenTelemetry Operator


注入自动仪表化

使用 OpenTelemetry Operator 实现自动仪表化。

水平 Pod 自动伸缩

为您的 OpenTelemetry Collector 配置 Horizontal Pod Autoscaling

Target Allocator

一个工具,用于将 PrometheusReceiver 的目标分发到所有已部署的 Collector 实例

排查 Kubernetes 的 OpenTelemetry Operator 问题

包含一系列关于排查 OpenTelemetry Kubernetes Operator 各方面问题的技巧。例如,当 Target Allocator 无法发现 scrape targets 时该怎么办。