Why Is My API Slow?

It was 100 ms and it is now 3 s. Work from what you can observe to what is actually happening — and notice that the first four causes below all raise p99 identically, so the headline number cannot pick between them. The discriminating signal can.

Before anything else

Ask what changed and when. A step change in the graph is a release; a ramp is growth; a spike at a fixed hour is a scheduled job. That question is free to ask and rules out more than any amount of profiling, and it is the one most often skipped because it feels too simple to be the answer.

Practise the discrimination

The signals above are the same ones the fault simulator moves.