Dva načina pogrešnog brojanja pristupnog zapisnika
O sadržaju i njegovoj provjeri
U ovom članku
Tjedan ovdašnjih promjena počivao je na brojkama iz jednog dana pristupnog zapisnika: milijun redaka, od kojih je stotinu tisuća naših. Da bi se utvrdilo je li išta od toga uspjelo, isto brojanje treba ponoviti kasnije — a ručno sastavljene brojke drugi put nikad nisu sasvim iste kao prvi put. Drukčiji popis botova, drukčiji datumski raspon, drukčiji grep.
Zato je brojanje preseljeno u alat s početnim stanjem zapisanim kao konstanta. Prvo je pokretanje provedeno upravo na zapisniku iz kojeg je početno stanje potjecalo. Sve je moralo ispasti jednako.
Dva retka nisu. Oba je puta alat bio u pravu, a prvotno brojanje pogrešno.
grep čita cijeli redak
Glavni nalaz tjedna bio je da se vlasnički token pojavio jednom u cijelom danu. Izbrojen je uzorkom primijenjenim na cijele retke zapisnika — a redak zapisnika sadržava zahtjev, ali i upućujuću stranicu te korisnički agent.
Jedino podudaranje bilo je &t= unutar URL-a upućujuće stranice tražilice. Netko je došao s rezultata mobilnog pretraživanja čija je adresa slučajno sadržavala ta dva znaka. U samim zahtjevima token se pojavio nula puta.
Nalaz je postao snažniji, što je neobičan način da se pogriješi. I dalje je pogrešno. Najprije izdvojite polje zahtjeva — to je drugo polje u navodnicima u kombiniranom retku zapisnika — i pretražujte unutar njega.
Lanac else-if proguta poseban slučaj
Drugo brojanje pokazalo je da je tjedni sažetak dohvaćen nula puta. Razvrstavanje je izgledalo razumno:
if (url contains "/live/") ... else if (url contains "feed.xml") ...
Adrese sažetka na ovom web-mjestu jesu /live/<number>/feed.xml. Svaka se podudarala s prvom granom i nikada nije dosegnula drugu. Stvarna brojka bila je 398.
Zaključak izveden iz pogrešne brojke slučajno je opstao: tih 398 zahtjeva ravnomjerno je raspoređeno po svih jedanaest jezičnih prefiksa uz tri generička identifikacijska niza preglednika, što je web-robot koji dohvaća svaki prijevod, a ne pretplatnik. Nitko se nije pretplatio. No „nitko se nije pretplatio“ i „nula zahtjeva“ različite su tvrdnje, a druga je ponavljano navođena prije nego što ju je itko provjerio.
Provjera koja otkriva oboje
Pokrenite alat za brojanje na točno onom danu iz kojeg početno stanje potječe. Svaki redak mora ispasti jednak. Sve što ne ispadne jednako ili je pogreška u alatu ili pogreška u prvotnom brojanju, a koja je od tih dviju otkriva se prije nego što postane važno, a ne poslije.
Bilo je potrebno jedno pokretanje i otprilike četiri minute. Obje su brojke dotad već bile napisane i nijedna se ne bi otkrila pažljivijim čitanjem koda — samo tako da mjerenje samo odgovara za sebe.