Learning
Všechny články
Engineering3. srpna 2026 5 min

Průměr umí ukázat přesný opak pravdy

Proč se ti dvě populace requestů schovají do jednoho čísla

Jedno číslo, dvě protichůdné pravdy

Nasadíš změnu, koukneš na dashboard. Průměrná latence stoupla ze 112 na 122 milisekund, o devět procent. Vypadá to na regresi, chystáš se rollback. Pak spočítáš medián z týchž requestů — a ten klesl. Dvě čísla, jedna sada dat, opačné směry.

Není to chyba měření. Je to signál, že tvoje data nemají jeden střed, ale dva.


Dvě populace se sečtou do lži

Ta změna přidala cache. Requesty se tím rozdělily na dvě skupiny. Cache hity zrychlily zhruba o 46 procent. Cache missy naopak zpomalily o sto až sto dvacet procent, protože k původní práci přibyla režie navíc.

Průměr obě skupiny slije do jednoho čísla, a ty dva pohyby se v něm skoro dokonale vyruší. Zbyde z nich mírný nárůst, který nepopisuje ani jednu z populací. Většina requestů je teď rychlejší. Menšina je výrazně pomalejší. A průměr neříká ani jedno.

Průměr má smysl jen u dat s jedním vrcholem. Jakmile se rozdělení rozpadne na víc populací, agregát přestane popisovat cokoli skutečného. Nepopisuje typický request, protože žádný typický request neexistuje.


CDF ukáže, co percentil zamlčí

Percentily jsou lepší než průměr, ale pořád je to jen několik bodů. p50, p95, p99 ti řeknou tři čísla z celého rozdělení. Když se křivka láme jinde, mineš to.

Užitečnější je podívat se na celou kumulativní distribuční funkci — pro každou hodnotu latence, jaký podíl requestů byl rychlejší. Když nakreslíš CDF před změnou a po ní přes sebe, dvě populace se prozradí okamžitě: křivky se protnou. Kus rozdělení se posunul doleva (rychlejší), kus doprava (pomalejší).

Dvě CDF, které se kříží, jsou nezaměnitelný podpis změny, kterou žádný jediný percentil neshrne. Kde se protnou, tam je hranice mezi tím, komu jsi pomohl, a komu uškodil.


Co si z toho odnést

Než uvěříš jednomu číslu, zeptej se, kolik má tvoje rozdělení vrcholů. Průměr, medián i p95 předpokládají jeden střed. U latence, doby buildu nebo velikosti odpovědi ho skoro nikdy nemáš — cache, retry, studené starty a velcí uživatelé ti data rozštěpí na populace.

Když ti dvě agregace ze stejných dat ukážou opačný směr, není to paradox. Je to informace: máš tam víc populací a ptáš se špatnou otázkou. Nakresli celé rozdělení dřív, než zrušíš nasazení. Číslo, které se vejde do alertu, je skoro vždycky příliš malé na to, aby popsalo, co se opravdu stalo.

Zdroje

Poslech místo čtení — 1 zdroj k načtení.