Observability and Testing

An API that works on your laptop tells you nothing about the one serving traffic at 3 a.m. Observability lets the running process answer questions you did not anticipate: which request failed, how long it took, who sent it, whether this instance should still receive traffic. Tests answer the same questions before deployment, not after.

Express 24,430 supplies the hooks and the ecosystem the rest: morgan 8,204 for a request line per response, pino 18,227 and winston 24,519 for structured logs, AsyncLocalStorage for request context, prom-client 3,492 for metrics, supertest 14,405 for driving the app over HTTP. Node's test runner (Built-in Test Runner) runs all of it with no framework installed, and Errors and Logging covers logging as a Node topic. Every listing runs on Express 5.2.1 with morgan 1.12.1, pino 10.3.1, pino-http 11.0.0 705 , winston 3.19.0, prom-client 15.1.3 and supertest 7.2.2.

Where observability and test seams sit in the Express stack
Where observability and test seams sit in the Express stack

Subsections