Ingest OpenTelemetry trace data

Preview

Heterogeneous cloud-native microservice architectures can lead to visibility gaps in distributed traces. To gain complete end-to-end observability of these architectures in Dynatrace, you can ingest OpenTelemetry trace data emitted by cloud-native third-party services that cannot run OneAgent.

When you push OpenTelemetry spans to Dynatrace via API on the ActiveGate using OTLP, the ingested spans are integrated into PurePaths and carry all span attributes and resource attributes, as well as TraceId, ParentSpanId, and SpanId.

For scenarios where OneAgent already serves as the foundation for your monitoring in Dynatrace, see OneAgent OpenTracing and OpenTelemetry support and OpenTelemetry metric ingestion. To learn how to integrate OpenTelemetry span data into Dynatrace, see OneAgent OpenTracing and OpenTelemetry support.

Limitations

In Preview release, the following limitations apply:

  • Dynatrace version 1.216 is required
  • Only the OTLP/HTTP binary Protobuf format is supported; see Format limitations below
  • Only spans that are related to and started by a PurePath node are available. This ensures that you can easily navigate to a span's details.
  • The Preview disclaimer applies

Format limitations

The endpoint supports only the OTLP/HTTP binary Protobuf format. To find exporters that support that format, check the OpenTelemetry specification.

To ingest any other format, you must use an OpenTelemetry collector between the exporter and Dynatrace.

Activate

To activate OpenTelemetry trace data ingestion

  1. Managed only Enable the OpenTelemetry module on your embedded ActiveGate.
    1. Add the following lines to the custom.properties file of the embedded ActiveGate:
    [otlp_ingest]
    otlp_ingest_enabled = true
    
    1. Restart the ActiveGate.
  2. Go to Settings > Server-side service monitoring > Deep monitoring > Distributed tracing.
  3. Turn on Send W3C Trace Context HTTP headers.
  4. Create an API token with the Ingest OpenTelemetry traces (openTelemetryTrace.ingest) scope.
  5. Configure an OpenTelemetry exporter of your choice:
    1. Set the URL as
      • SaaS https://{your-environment-id}.live.dynatrace.com/api/v2/otlp/v1/traces
      • Managed https://{your-domain}/e/{your-environment-id}/api/v2/otlp/v1/traces
    2. Set the Authorization HTTP header as Api-Token <TOKEN>, where <TOKEN> is the API token you created earlier.
  6. After about five minutes, check the PurePaths to confirm successful configuration.

View

To view your OpenTelemetry span, navigate to a PurePath that calls the service you just instrumented and check for spans on the left side of the service call tree.

Data privacy

While Dynatrace automatically captures all OpenTelemetry resource and span attributes, only the values of attributes that are specified in an allowlist are stored. This prevents accidental storage of personal data, enabling you to meet your privacy requirements and control the amount of monitoring data that's stored.

To view and edit the allowlists:

  • For span attributes, go to Settings > Server-side service monitoring > Span attributes
  • For resource attributes, go to Settings > Server-side service monitoring > Resource attributes

Troubleshooting