Loading
fix(correlation): cf-ray header precedance
What
---
`X-Request-ID` takes precedence over `cf-ray` header for correlation.
Why
---
We can have two services communicating with each other that are behind Cloudflare
for example, HTTP Router and Topology Service. When the HTTP Router sends a
request to Topology Service `cf-ray` gets regenerated by Cloudflare, so
we can never correlate anything between the two services.
```
User
↓
Cloudflare Edge (DME/Moscow) → Ray ID: 9c40f4f908af1229
↓
HTTP Router (CF Worker)
↓
Cloudflare Zero Trust / Proxy () → NEW Ray ID: Random ID
↓
Topology Service (GCP)
↓
Topology Service (GCP) logs `Random ID` instead of 9c40f4f908af1229
```
If `X-Request-ID` takes precedence we can still use `cf-ray` as the correlation ID for
services that are the public entry point and don't specify
`X-Request-ID`.
reference: https://gitlab.com/gitlab-com/gl-infra/production-engineering/-/work_items/28225