• Home
  • Extend
  • OpenTelemetry
  • OpenTelemetry Collector
  • Collector use cases
  • Apply memory limits

Apply memory limits

The following configuration example shows how you configure a Collector instance and its native memory limiter processor to guarantee memory allocation keeps within the specified parameters.

Demo configuration

yaml
receivers: otlp: protocols: grpc: http: processors: memory_limiter: check_interval: 1s limit_percentage: 70 spike_limit_percentage: 30 exporters: otlphttp: endpoint: $DT_ENDPOINT/api/v2/otlp headers: Authorization: "Api-Token $DT_API_TOKEN" service: pipelines: traces: receivers: [otlp] processors: [memory_limiter] exporters: [otlphttp] metrics: receivers: [otlp] processors: [memory_limiter] exporters: [otlphttp] logs: receivers: [otlp] processors: [memory_limiter] exporters: [otlphttp]

Prerequisites

  • At least Core distribution with the memory limiter processor
  • The API URL of your Dynatrace environment
  • An API token with the relevant access scope

Components

For our configuration, we configure the following components.

Receiver

Under receivers, we specify the standard otlp receiver as active receiver component for our Collector instance.

This is mainly for demonstration purposes. You can specify any other valid receiver here (for example, zipkin).

Processor

Under processors, we specify the memory_limiter processor with the following parameters:

  • check_interval configured to check the memory status every second
  • limit_percentage configured to allow a maximum memory allocation of 70 percent
  • spike_limit_percentage configured to allow a maximum spike memory usage of 20 percent

With this configuration, the Collector checks the memory allocation every second and starts to apply limits (for example, rejecting requests or forcing garbage collection) when the allocated memory exceeds 70 percent, with a temporary spike limit of 20 percent.

Exporter

Under exporters, we specify the default otlphttp exporter and configure it with our Dynatrace API URL and the required authentication token.

For this purpose, we set the following two environment variables and reference them in the configuration values for endpoint and Authorization.

  • DT_ENDPOINT contains the base URL of your ActiveGate (for example, https://{your-environment-id}.live.dynatrace.com)
  • DT_API_TOKEN contains the API token

Service pipeline

Under service, we assemble our receiver and exporter objects into pipelines for traces, metrics, and logs and enable our memory limiter processor by referencing it under processors for each respective pipeline.

Related topics
  • Enrich ingested data with Dynatrace-specific dimensions

    Learn how to automatically enrich your telemetry data with Dynatrace-specific dimensions.

  • Enrich from Kubernetes

    Configure the OpenTelemetry Collector to enrich OTLP requests with Kubernetes data.