Let's talk telemetry.
Structured data, vendor-neutral libraries, real code.
Errors
Build a capture layer that catches what console.error never will
Logs
Structured events you can query, not strings you Ctrl+F through
unstructured
"ERROR Payment failed for order 8f3a user 4821 (took 342ms)"
structured
levelerror
orderId8f3a
userId4821
duration_ms342
Traces
Follow a request across every service it touches
POST /checkout
450ms
authenticate
12ms
createOrder
380ms
SELECT orders
95ms
redis.get cart
3ms
stripe.charge
180ms
serialize
8ms
Metrics
Counters, histograms, gauges — numbers that answer questions
14,209
checkout.requests
p50
45ms
p95
230ms
p99
1.2s
checkout.duration
73%
stripe.pool_usage