org.http4s.server.HttpMiddleware that either tries to get a Trace-Id from the headers or otherwise
creates one with a unique Time-based UUID value, adds it to the headers and logs the http request and
http response with it.
Quite useful to trace the flow of each request. For example:
org.http4s.server.HttpMiddleware
that either tries to get a Trace-Id from the headers or otherwise creates one with a unique Time-based UUID value, adds it to the headers and logs the http request and http response with it.Quite useful to trace the flow of each request. For example:
[TraceId] - [72b079c8-fc92-4c4f-aa5a-c0cd91ea221c] - Request(method=GET, uri=/users, ...) [TraceId] - [72b079c8-fc92-4c4f-aa5a-c0cd91ea221c] - UserAlgebra requesting users [TraceId] - [72b079c8-fc92-4c4f-aa5a-c0cd91ea221c] - UserRepository fetching users from DB [TraceId] - [72b079c8-fc92-4c4f-aa5a-c0cd91ea221c] - MetricsService saving users metrics [TraceId] - [72b079c8-fc92-4c4f-aa5a-c0cd91ea221c] - Response(status=200, ...)
In a normal application, you will have thousands of requests and tracing the call chain in a failure scenario will be invaluable.