Почему не среднее. Распределение задержек скошено: большинство запросов быстрые, хвост длинный. Среднее его прячет; p50 показывает типичный опыт, p95/p99 — то, что видят невезучие и на что жалуются.
Почему перцентили не усредняются. p99 каждого из десяти подов ничего не говорит о p99 их суммы. Правильно — собирать гистограммы (счётчики по бакетам задержки), складывать их и вычислять перцентиль по сумме: histogram_quantile(0.99, sum by (le) (rate(...))).
Раздельно по статусу. Ошибка часто возвращается быстро (сразу 500 или отказ circuit breaker). Если смешать, при аварии задержка даже «улучшится». Задержку считают для успешных, а долю ошибок — отдельно.
Где мерить: сервер видит время обработки, но не очередь в балансировщике, не сеть, не повторы клиента. Важны метрики на стороне клиента или балансировщика.
Хвосты в цепочках: ответ агрегатора ждёт самый медленный из N вызовов, поэтому его p99 определяется p99.9 зависимостей.
Нагрузочные тесты: генератор с фиксированной скоростью, иначе coordinated omission занижает хвост.