Using OpenTelemetry Collector to collect traces to send to App Insights

How to push trace events to Azure Application Insights, using the OpenTelemetry Collector.

Dapr integrates with OpenTelemetry (OTEL) Collector using the Zipkin API. This guide walks through an example using Dapr to push trace events to Azure Application Insights, using the OpenTelemetry Collector.

Prerequisites

Set up OTEL Collector to push to your App Insights instance

To push events to your App Insights instance, install the OTEL Collector to your Kubernetes cluster.

  1. Check out the open-telemetry-collector-appinsights.yaml file.

  2. Replace the <INSTRUMENTATION-KEY> placeholder with your App Insights instrumentation key.

  3. Apply the configuration with:

    1. kubectl apply -f open-telemetry-collector-appinsights.yaml

Set up Dapr to send trace to OTEL Collector

Set up a Dapr configuration file to turn on tracing and deploy a tracing exporter component that uses the OpenTelemetry Collector.

  1. Use this collector-config.yaml file to create your own configuration.

  2. Apply the configuration with:

    1. kubectl apply -f collector-config.yaml

Deploy your app with tracing

Apply the appconfig configuration by adding a dapr.io/config annotation to the container that you want to participate in the distributed tracing, as shown in the following example:

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. ...
  5. spec:
  6. ...
  7. template:
  8. metadata:
  9. ...
  10. annotations:
  11. dapr.io/enabled: "true"
  12. dapr.io/app-id: "MyApp"
  13. dapr.io/app-port: "8080"
  14. dapr.io/config: "appconfig"

Note

If you are using one of the Dapr tutorials, such as distributed calculator, the appconfig configuration is already configured, so no additional settings are needed.

You can register multiple tracing exporters at the same time, and the tracing logs are forwarded to all registered exporters.

That’s it! There’s no need to include any SDKs or instrument your application code. Dapr automatically handles the distributed tracing for you.

View traces

Deploy and run some applications. After a few minutes, you should see tracing logs appearing in your App Insights resource. You can also use the Application Map to examine the topology of your services, as shown below:

Application map

Note

Only operations going through Dapr API exposed by Dapr sidecar (for example, service invocation or event publishing) are displayed in Application Map topology.

Last modified March 21, 2024: Merge pull request #4082 from newbe36524/v1.13 (f4b0938)