The transition to W3C standard in customer distributed system starts with frontend service. The first service should generate W3C compatible operation id that could be used downstream on all services whether they support W3C or not.
This change checks
if Request-Id is present
if traceparent (w3c header) is not present
if Request-Id root part (operation id) is valid w3c traceId
THEN is uses root id as traceid.
As a result when customer updates frontend to AppInsights 2.7+ and when it calls downstream service, it emits Request-Id = |traceId.1. and traceparent = 00-trace-id-spanId-00
This guarantees common operation id on all downstream services.
The transition to W3C standard in customer distributed system starts with frontend service. The first service should generate W3C compatible operation id that could be used downstream on all services whether they support W3C or not.
This change checks
THEN is uses root id as traceid.
As a result when customer updates frontend to AppInsights 2.7+ and when it calls downstream service, it emits Request-Id = |traceId.1. and traceparent = 00-trace-id-spanId-00
This guarantees common operation id on all downstream services.