The diagram as text
Spans, in call order
Total 1.8 s. What it waited on, in order: verify session → redis MGET price:* → select price from products (cache miss) → stripe.PaymentIntent.create → TLS handshake api.stripe.com → insert into orders → publish fulfilment.
- POST /checkout: starts at 0 ms, takes 1.8 s (100%) (
checkout-trace.jsonl:1✓) - verify session: starts at 4 ms, takes 34 ms (2%) (
checkout-trace.jsonl:2✓) - price cart: starts at 40 ms, takes 380 ms (21%) (
checkout-trace.jsonl:3✓) - redis MGET price:*: starts at 42 ms, takes 19 ms (1%) (
checkout-trace.jsonl:4✓) - select price from products (cache miss): starts at 64 ms, takes 346 ms (19%) (
checkout-trace.jsonl:5✓) - stripe.PaymentIntent.create: starts at 430 ms, takes 1.2 s (65%) (
checkout-trace.jsonl:6✓) - TLS handshake api.stripe.com: starts at 431 ms, takes 89 ms (5%) (
checkout-trace.jsonl:7✓) - insert into orders: starts at 1.6 s, takes 165 ms (9%) (
checkout-trace.jsonl:8✓) - publish fulfilment: starts at 1.8 s, takes 44 ms (2%) (
checkout-trace.jsonl:9✓)
Notes
- One trace, from checkout-trace.jsonl. It says where this request spent its time, not how often checkouts are this slow.