OpenTelemetry Operator for Kubernetes

An implementation of a Kubernetes Operator, that manages collectors and auto-instrumentation of the workload using OpenTelemetry instrumentation libraries.

Introduction

The OpenTelemetry Operator is an implementation of a Kubernetes Operator.

The operator manages:

Getting started

To install the operator in an existing cluster, make sure you have cert-manager installed and run:

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

Once the opentelemetry-operator deployment is ready, create an OpenTelemetry Collector (otelcol) instance, like:

$ 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 

For more configuration options and for setting up the injection of auto-instrumentation of the workloads using OpenTelemetry instrumentation libraries, see OpenTelemetry Operator for Kubernetes.


Injecting Auto-instrumentation

An implementation of auto-instrumentation using the OpenTelemetry Operator.

Horizontal Pod Autoscaling

Configure Horizontal Pod Autoscaling with your OpenTelemetry Collector

Target Allocator

A tool to distribute targets of the PrometheusReceiver on all deployed Collector instances

Troubleshooting the OpenTelemetry Operator for Kubernetes

Contains a collection of tips for troubleshooting various aspects of the OpenTelemetry Kubernetes Operator. For example, what to do when the target allocator is failing to discover scrape targets.