Odsłony
„Odsłony na /pricing są 2.4σ poniżej kroczącego punktu odniesienia — sprawdź niedawne wdrożenia i kampanie.” Zmiany wolumenu wychodzą na wierzch, zanim kosztują cię tydzień.
Performance RUM
Core Web Vitals od prawdziwych użytkowników w pełnej głębi percentyli — p50, p75, p90, p95 dla LCP, INP, CLS, FCP i TTFB — zbierane oficjalnym buildem web-vitals z atrybucją i przechowywane jako TDigesty w ClickHouse, więc każdy percentyl to prawdziwy percentyl danych z pola. Średnie ukrywają regresje; percentyle ich dowodzą.
Pełna głębia percentyli
Każdy vital jest przechowywany jako ClickHouse TDigest per dzień, per strona, per klasa urządzenia — co znaczy, że dowolny percentyl można przeliczyć dokładnie, na dowolnej głębokości retencji, bez uśredniania czegokolwiek. Oceny idą metodologią CrUX: good, needs-improvement, poor.
| Vital | p50 | p75 | p90 | p95 | Ocena p75 |
|---|---|---|---|---|---|
| LCP — largest contentful paint | 1.6 s | 2.1 s | 3.0 s | 3.8 s | good |
| INP — interaction to next paint | 96 ms | 148 ms | 214 ms | 268 ms | good |
| CLS — cumulative layout shift | 0.03 | 0.12 | 0.18 | 0.24 | needs-imp. |
| FCP — first contentful paint | 1.1 s | 1.5 s | 2.1 s | 2.6 s | good |
| TTFB — time to first byte | 0.4 s | 0.9 s | 1.2 s | 1.9 s | needs-imp. |
Progi to opublikowane przez Google granice CrUX: LCP 2.5 s / 4.0 s · INP 200 ms / 500 ms · CLS 0.10 / 0.25 · FCP 1.8 s / 3.0 s · TTFB 800 ms / 1.8 s — good, needs-improvement, poor. Percentyle pochodzą z TDigestów, nie z próbkowanych średnich.
Rozbicia i atrybucja
Serie dzienne do obserwacji trendów, rozbicia per strona, by znaleźć wolne trasy, podziały per urządzenie, bo mobile to inny internet — a do drążenia dane atrybucji: który element namalował się ostatni, który cel interakcji się zatkał.
Oficjalny build web-vitals z atrybucją raportuje element stojący za LCP i CLS oraz cel interakcji stojący za INP — zły percentyl nazywa swojego podejrzanego, a drążenie zaczyna się od podejrzanego, nie od pustej kartki.
Każdy percentyl jest dostępny per ścieżka i per klasa urządzenia. „Strona jako całość jest ok” to nie odpowiedź, gdy /checkout na mobile jest tym jednym, który zaciąga p75 za linię.
Vitals są zbierane z zerem cookies i zerem pamięci przeglądarki w trybie domyślnym — ta sama postawa bez banera co reszta Observera, na Twoim własnym sprzęcie.
Wykrywanie anomalii
z-score ≥ 2 względem kroczącego punktu odniesienia, liczone na odsłonach, błędach, celach i Core Web Vitals — i renderowane jako karty zwykłym językiem na Przeglądzie. Bez teatru ML, bez nieprzejrzystych wyników: uczciwa flaga statystyczna, sformułowana tak, by człowiek mógł na niej działać.
„Odsłony na /pricing są 2.4σ poniżej kroczącego punktu odniesienia — sprawdź niedawne wdrożenia i kampanie.” Zmiany wolumenu wychodzą na wierzch, zanim kosztują cię tydzień.
„Wskaźnik błędów przesunął się na 2.1σ powyżej punktu odniesienia w ostatniej godzinie.” Karta linkuje prosto do okna, w którym zaczęło się ruszać.
„Konwersje celu są 2.3σ poniżej punktu odniesienia w perspektywie 24 h.” Spadki konwersji dostają flagę tą samą matematyką co spadki ruchu.
„LCP p75 przesunął się na 3.1 s na /pricing — sprawdź niedawne wdrożenia.” Dokładnie ta karta, którą Przegląd pokazuje, gdy vital przecina swój punkt odniesienia.
Wszystkie wykrycia to z-score na danych zagregowanych względem kroczącego punktu odniesienia — ta sama uczciwa statystyka, która napędza reguły alertów. Nigdy nic nie jest wnioskowane o pojedynczych osobach, bo danych o osobach w ogóle nie ma.
Porównanie wdrożeń
POST na webhook wdrożenia — uwierzytelniony tokenem witryny — i Przegląd dostaje delty „od ostatniego wdrożenia”: odsłony, cele, błędy i CWV po wdrożeniu, na tle równiej długości okna sprzed niego. Polowanie na regresje przestaje być archeologią.
# site-token auth; the timestamp lands on the deploy table
curl -X POST https://sa.yourdomain.com/api/v1/deploy \
-H "Authorization: Bearer <site-token>" \
-H "Content-Type: application/json" \
-d '{ "version": "v2.4.2" }'
| Metryka | Przed | Po | Δ |
|---|---|---|---|
| Odsłony | 6,120 | 7,214 | +17.9% |
| Cele | 214 | 262 | +22.4% |
| Błędy | 96 | 31 | −67.7% |
| LCP p75 | 2.9 s | 2.3 s | −0.6 s |
Core Web Vitals RUM wchodzi w tryb domyślny — percentyle od pierwszego dnia, bez banera zgody. Dostęp po podpisaniu NDA; wdrażamy razem z Twoim zespołem DevOps, na Twoim sprzęcie.