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/v1alpha1 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: exporters: # NOTE: Prior to v0.86.0 use `logging` instead of `debug`. debug: service: pipelines: traces: receivers: [otlp] processors: [] exporters: [debug] EOF

For more configuration options and for setting up the injection of auto-instrumentation of the workloads using OpenTelemetry instrumentation libraries, continue reading here.


Injecting Auto-instrumentation

An implementation of auto-instrumentation using the OpenTelemetry Operator.

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.