The request timeline in jadpo dev
On this page
jadpo dev records every request it serves and prints one line for each,
with its request id. jadpo trace <request id> shows that request's whole
timeline: the route, the caller, the actions and queries with their SQL,
rows and timings, the writes, the events emitted, the subscribers run, the
calls to outside services, and the outcome. It is like a development log
that also gives each query's source line. It is built from the spans, the
timed steps of a trace, that Jadpo already records
(Telemetry).
$ jadpo devlistening on http://localhost:3000req_0b1e POST /todos/0192…/complete 409 todo_mutation_conflict 41 msreq_0b1f GET /todos 200 9 ms 3 queries$ jadpo trace req_0b1ePOST /todos/0192…/complete 409 todo_mutation_conflict 41 ms as user 0192…a7 route domains/planning/routes/todos.jadpo:31 action complete_todo domains/planning/actions/complete_todo.jadpo:4 query Todo.get 3 ms 1 row SELECT … FROM todos WHERE id = $1 AND deleted_at IS NULL write Todo.update 2 ms 0 rows (expected revision 7, found 8) fail TodoMutationConflict complete_todo.jadpo:9 rolled back; no events emitted
What the SQL shows
SQL is shown with placeholders. Its parameters follow the rule for a failure's internal fields in logs (Logging): identifiers, numbers, enums, booleans and times are shown as values, and text as a keyed hash, so you can tell two values apart without seeing either.
Where timelines are kept
The last 500 timelines are kept in build/dev/, which Jadpo generates and
you never commit. Production records the same spans and sends them through
OpenTelemetry (Telemetry), so you
view them in whatever tool your team already uses.
What gets flagged
A request that runs several queries for one call, or runs a query with no
index to use, is flagged on its line. These are the same problems the
query report flags, the report jadpo check writes to build/report/
(Tools for agents).
Provider calls in the timeline
Calls to a provider, an outside service such as Stripe, appear in the
timeline with their inputs and answers in full and where each answer came
from: recording, generated, scripted or sandbox
(Provider calls in development).
An action can make several calls that change something at a provider. For such an action, the timeline shows each step's state: recorded, sent, answered, replayed or in doubt (Several changing calls in one action).
Markdown for agents: /docs/the-request-timeline-in-jadpo-dev.md.Built from Jadpo main at a707efb.