Kubernetes Integration

Monitor your Kubernetes clusters with OpenTelemetry

Overview

The Kubernetes integration uses the OpenTelemetry Collector to gather logs, metrics, and traces from your cluster. This provides comprehensive observability for your containerized workloads.

Prerequisites

  • A running Kubernetes cluster (v1.19+)
  • kubectl configured to access your cluster
  • Helm 3.x installed
  • Your Qorrelate API key and organization ID

1. Deploy OpenTelemetry Collector

# Add the OpenTelemetry Helm repository
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
helm repo update

# Create a namespace for observability
kubectl create namespace observability

# Create a secret with your API key
kubectl create secret generic qorrelate-credentials \
  --namespace observability \
  --from-literal=api-key=YOUR_API_KEY \
  --from-literal=org-id=YOUR_ORG_ID

# Install the collector
helm install otel-collector open-telemetry/opentelemetry-collector \
  --namespace observability \
  --values otel-collector-values.yaml

2. Collector Configuration

Create otel-collector-values.yaml:

mode: daemonset

config:
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318

  exporters:
    otlphttp:
      endpoint: https://qorrelate.io
      headers:
        Authorization: Bearer ${QORRELATE_API_KEY}
        X-Organization-Id: ${QORRELATE_ORG_ID}

  service:
    pipelines:
      logs:
        receivers: [otlp]
        exporters: [otlphttp]
      metrics:
        receivers: [otlp]
        exporters: [otlphttp]
      traces:
        receivers: [otlp]
        exporters: [otlphttp]

3. Instrument Your Applications

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
spec:
  template:
    spec:
      containers:
        - name: my-app
          env:
            - name: OTEL_EXPORTER_OTLP_ENDPOINT
              value: "http://otel-collector.observability.svc:4317"
            - name: OTEL_SERVICE_NAME
              value: "my-app"

Cluster Metrics

Deploy kube-state-metrics for cluster metrics:

helm install kube-state-metrics prometheus-community/kube-state-metrics \
  --namespace observability

Verifying the Integration

  1. Check collector pods: kubectl get pods -n observability
  2. View collector logs: kubectl logs -n observability -l app.kubernetes.io/name=opentelemetry-collector
  3. Check Qorrelate for your data

💡 Pro Tip

Use the Kubernetes Monitoring dashboard in Qorrelate for a pre-built view of cluster health.