How is HttpContext TraceIdentifier (aka Correlation-Id) generated?
I request a page through controller which gives me the following TraceId:
0HLEACIU86PT6:0000000D
The page fires an ajax call which has the following TraceId:
0HLEACIU86PT7:00000005
As you can see, they are very similar. Is it based on time?
Why didn't I get the same TraceIdentifier?
How can I ensure the same TraceIdentifier?
Kestrel generates the request ID as {ConnectionId}:{Request number}. The connection id is the base32 encoded version of a long using the alphabet 1-9, and A - V. The request count is the number of requests over that connection. The nth request over a specific connection is {ConnectionId}:{n}
https://github.com/aspnet/KestrelHttpServer/blob/a48222378b8249a26b093b5b835001c7c7b45815/src/Kestrel.Core/Internal/Infrastructure/CorrelationIdGenerator.cs
https://github.com/aspnet/KestrelHttpServer/blob/0aff4a0440c2f393c0b98e9046a8e66e30a56cb0/src/Kestrel.Core/Internal/Http/Http1Connection.cs#L446
It is DateTime.UtcNow.Ticks
base32 encoded.
https://github.com/aspnet/HttpAbstractions/blob/87cd79d6fc54bb4abf07c1e380cd7a9498a78612/src/Microsoft.AspNetCore.Http/Features/HttpRequestIdentifierFeature.cs
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With