In W3C mode we report parentId and Id in the format of |traceId.parentSpanId. and |traceId.spanId. respectively.
This is not needed anymore even for backward compatibility reasons. Compatibility with old versions of Application Insights SDK is handled by ingestion.
Describe the solution you would like
When SDK receives a valid incoming request with
traceparent = 00-traceId-parentId-00, it should track request telemetry
- request.Context.Operation.Id = traceId // no changes
- request.Context.Operation.ParentId = parentId // new, was |traceId.parentId.
- request.Id = new span Id // new, was |traceId.spanId.
- no header, it should track request telemetry
- request.Context.Operation.Id = new traceId // no changes
- request.Context.Operation.ParentId = null // no changes
- request.Id = new span Id// new, was |traceId.spanId.
- legacy Request-Id header, it should track request telemetry
- request.Context.Operation.Id = if request-id root part is compatible with trace-id, reuse it, otherwise generate a new one
- request.Context.Operation.ParentId = headers[Request-Id] // no changes
- request.Id = new span Id // new, was |traceId.spanId.
- properties["ai_LegacyRootId"] = if request-id root part is NOT compatible with trace-id, put it here, otherwise keep empty // no changes
Similarly for dependencies
- dependency.Context.Operation.Id = traceId,
- dependency.Context.Operation.ParentId = parent span id, // new, was |trace.parent.
- dependency.Id = new span id, // new, was |trace.span.
When sending Request-Id in outgoing requests it still MUST be formatted in the |TraceId.SpanId. format!
In W3C mode we report parentId and Id in the format of
|traceId.parentSpanId.and|traceId.spanId.respectively.This is not needed anymore even for backward compatibility reasons. Compatibility with old versions of Application Insights SDK is handled by ingestion.
Describe the solution you would like
When SDK receives a valid incoming request with
traceparent = 00-traceId-parentId-00, it should track request telemetrySimilarly for dependencies
When sending Request-Id in outgoing requests it still MUST be formatted in the |TraceId.SpanId. format!