Menu
Grafana Cloud

Application Observability with Kubernetes OpenTelemetry Operator

If you deploy your application in Kubernetes you can use the OpenTelemetry Operator to:

  1. Simplify the deployment and management of OpenTelemetry components in Kubernetes.
  2. Inject OpenTelemetry instrumentation into Kubernetes workloads and send data to Grafana Cloud.

Set up

Follow the OpenTelemetry Operator documentation to set up the OpenTelemetry Operator in your Kubernetes cluster.

Kubernetes Monitoring

It’s recommended to use Kubernetes (Alloy) as a starting point for monitoring your Kubernetes cluster.

Skip the optional step to install the OpenTelemetry Collector and use the OTLP endpoint provided by the Kubernetes Alloy configuration.

Grafana OpenTelemetry SDK distributions

You can custom Docker images of Grafana OpenTelemetry SDK distributions to instrument applications with the OpenTelemetry Operator.

The OpenTelemetry Operator documentation lists all upstream and community supported languages.

Java example

The follow example shows you how to use the Grafana Labs distribution of the OpenTelemetry SDK for Java (JVM) with the OpenTelemetry Operator.

Follow the OpenTelemetry Operator Java documentation and add the following to the Kubernetes Instrumentation manifest to use the Grafana Java SDK:

yaml
spec:
  java:
    image: us-docker.pkg.dev/grafanalabs-global/docker-grafana-opentelemetry-java-prod/grafana-opentelemetry-java:2.3.0-beta.1
  exporter:
    ..

If you use the OpenTelemetry Operator Helm chart, set the image using helm instead of manually editing the Instrumentation manifest.

shell
helm upgrade opentelemetry-operator open-telemetry/opentelemetry-operator --set manager.autoInstrumentationImage.java.repository=us-docker.pkg.dev/grafanalabs-global/docker-grafana-opentelemetry-java-prod/grafana-opentelemetry-java,manager.autoInstrumentationImage.java.tag=2.3.0-beta.1

Note

The docker tag 2.3.0-beta.1 corresponds is exactly the same as the version of the release page with the v prefix removed.