This integration is based on open source code governed by the respective communities and is not covered under the Dynatrace support policy. While we strive to assist, issues and feature requests should be reported directly to the respective project. Dynatrace cannot ensure fixes/features due to the independent nature of OSS projects.
Always use the most recent release version to ensure you have the latest patches and fixes deployed.
This page describes how to use Istio version 1.22+ with the Istio OpenTelemetry extension provider, and how to configure it to export OpenTelemetry traces to Dynatrace.
The following prerequisites are necessary to configure Istio OpenTelemetry trace configuration, including Dynatrace resource detection and sampling:
Istio versions 1.21 and earlier ship with Envoy versions 1.29 and earlier, which is based on OpenTracing. To use these Isito releases, enable the Dynatrace Envoy code module as described in Configure OpenTelemetry tracing with Envoy.
In certain deployment setups, tracing with Istio version 1.22+ results in consumption of the following rate card capabilities:
When using the Dynatrace resource detector and sampler:
Without the Dynatrace resource detector and sampler: Usage incurs consumption of Custom Traces Classic (DPS) or DDUs for custom traces (Dynatrace Classic License).
Istio.Save the Mesh configuration snippet you obtained in step 1 under meshconfig.yaml and configure Istio with the following command:
istioctl install -f meshconfig.yaml
If you already use your own, custom Mesh configuration, you need to merge its content with the provided snippet. Otherwise, you can use the snippet as-is.
Next, you need to deploy the Istio service entry manifest you obtained in step 1 using kubectl. Save it to dt-serviceentry.yaml and run the following command:
kubectl apply -n istio-system -f dt-serviceentry.yaml
As last configuration step, use the Istio telemetry API to enable the tracing provider.
Save the telemetry API manifest you obtained in step 1 to dt-telemetry.yaml and use kubectl to apply the configuration to the desired namespace.
kubectl apply -n istio-system -f dt-telemetry.yaml
Do not deploy more than one telemetry resource within a given namespace, as doing so may lead to configuration conflicts and incomplete tracing information.
If you require different telemetry resources, deploy them to different namespaces or using different selectors.
Make sure to restart all applicable Kubernetes pods, to let the changes to the mesh configuration take effect.
Once the setup is complete and you have ingested your first data, you can verify if the traces show up in Dynatrace.
