Following a request.
WHAT THE PROBLEM IS
A request touching several services, with a failure somewhere.
WHAT MAKES IT HARD
Logs in separate places, with no way to connect them.
WHAT SOLVES IT
A request identifier, generated at the entry point and passed through everything.
WHAT THAT ENABLES
Finding every log entry for one request.
WHAT TO INCLUDE IN EVERY LOG ENTRY
That identifier.
WHAT TRACING TOOLS ADD
A visual record of where time was spent across services.
WHEN THAT IS WARRANTED
When several services are involved.
WHAT A SMALL APPLICATION NEEDS
A request identifier in the logs, and consistent timestamps.
THE TIMESTAMP POINT
Servers with clocks slightly apart make correlation impossible.
Synchronise time everywhere.
WHAT TO RECORD FOR EXTERNAL CALLS
Duration and outcome.
WHY
External services are frequently the cause of slowness.
WHAT TO CHECK WHEN SOMETHING IS SLOW
Where the time actually went, rather than guessing.