Scaling your tracing deployment

This topic provides instructions for scaling the OpenTelemetry Collector deployment for tracing in Kubernetes.

Metrics scaling can have different characteristics from tracing, so we recommend scaling them independently. You can scale an OpenTelemetry Collector with a Prometheus receiver by using a StatefulSet.

Prerequisites

Scaling possibilities

There are two ways to scale your deployment: vertically and horizontally. In Kubernetes, vertical scaling entails increasing the memory and CPU requests/limits of your Kubernetes pod. Horizontal scaling means adding more pods (collector instances) to handle your traffic.

Vertically scale the Collector

In the values.yaml for your Collector deployment, adjust the following block:

1
2
3
4
5
6
7
    resources:
      limits:
        cpu: CPU_LIMIT_HERE
        memory: MEMORY_LIMIT_HERE
      requests:
        cpu: CPU_REQUEST_HERE
        memory: MEMORY_REQUEST_HERE

Ensure that your memory and CPU values are well formatted for Kubernetes

Horizontally scale the Collector

In the values.yaml for your collector deployment, adjust the replica count:

1
2
3
collectors:
  - name: "collector-name"
    replicas: REPLICA_COUNT_HERE

Apply the changes

1
helm upgrade lightstep ./collector_k8s -f ./collector_k8s/values.yaml -n opentelemetry --install

Observe the changes

Your new Collectors should appear in your OpenTelemetry Collector dashboard.