dapr: Correlation id (traceparent) is not propagated in 0.7.0

In what area(s)?

/area runtime

What version of Dapr?

0.7.0

I have a typical pub sub scenario and using Service Bus as a message broker. My publisher uses Dapr State Store API and Dapr Publish API and I pass correlation id (now traceparent id) to both calls so that I can track requests end-to-end in Application Insight.

In my subscriber app I extract the correlation id passed by publisher and pass it along when calling dapr output bindings.

After installing dapr 0.7.0 I am seeing 2 issues:

  1. My subscriber app no longer receives correlation id from the publisher: { traceparent: '00-00000000000000000000000000000000-0000000000000000-00' }

note: traceparent looks normal in publisher app: 00-acbd9521619856c592b5971cebfb2adc-0000000000000000-01

  1. In Application Insight all calls are disconnected now. It was a tree like structure before.

I changed my tracing configuration to:

apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
  name: tracing
spec:
  tracing:
    samplingRate: "1"

Also renamed “x-correlation-id” to “traceparent” everywhere in my apps and cleaned the Service Bus queue. Anything else I am missing?

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (14 by maintainers)

Most upvoted comments

Agree to fix Pubsub in 0.7.1, but not for the others, state and bindings.

We will refactor tracing code soon for next milstone. I do recommend to change bindings and state behavior with the docs and samples in the next milestone. The 0.6.0 tracing for binding and state was wrong because we exposed internal localhost communication. we need to find a way to hide localhost communication and show proper dependency tracing. That’s why I suggest to write Small proposal first.

Also we need to have a proper change in dotnet sdk and java sdk which allows user to pass their own correlation headers in a seamless way.

In sum, here is my suggestion:

  1. Change pubsub in 0.7.1 - populate missing trace id to subscriber app
  2. Write small proposal for binding and state first and then implement it with tracing Code refactoring for 0.8.0 release
  3. Write docs, samples, and sdks in 0.8.0 release

@yaron2 @msfussell any feedbacks?

lgtm. I’m ok with this because state can still be traced today. The details of how it looks on the map is ok to change for 0.8.