Hi Team, I have an inquiry related to trace spans generated by envoy sidecars:
Given that I have the following setup:
- A kubernetes cluster that has istio 0.8.0 as a service mesh with envoy sidecar injection enabled
- A service S1 deployed on that cluster
- An nginx-ingress-controller to access the service S1
After sending requests from nginx to the service S1, the generated trace spans are:
nginx (SpanID: 8640f64baf1a6a14) [parent span]
|
|---> nginx (SpanID: 3c2f583711047c5d) [child span 1]
|
|---> S1 (SpanID: 3c2f583711047c5d) [child span 2]
The issue is, the same SpanID 3c2f583711047c5d is generated for both nginx and S1 spans, which causing inconsistency in the tracing flow.
I dumped the request headers coming from nginx to the Service S1 below:
Accept: [*/*]
X-B3-Parentspanid: [8640f64baf1a6a14]
X-Envoy-Expected-Rq-Timeout-Ms: [15000]
Ssl-Client-Verify: [SUCCESS]
X-Forwarded-Host: [somehost:someport]
X-Forwarded-Proto: [https]
X-Scheme: [https]
X-Envoy-Internal: [true]
Ssl-Client-Issuer-Dn: [somevalues]
X-Forwarded-For: [someip]
X-Forwarded-Port: [443]
Content-Length: [153]
X-B3-Traceid: [751c7b5d680bc470]
Ssl-Client-Subject-Dn: [somevalues]
X-Request-Id: [2807a195f768fc7469ee1f68a946411f]
X-B3-Sampled: [1]
X-B3-Flags: [0]
X-Real-Ip: [someip]
X-Original-Uri: [someuri]
User-Agent: [curl/7.52.1]
Content-Type: [application/json]
X-B3-Spanid: [3c2f583711047c5d]
Is there anyway I can prevent generating the same SpanID for trace spans? Any directions or suggestions would be appreciated.
Kind regards,
Marco