Kontaktirajte podršku

Odgovaramo e-poštom, obično u roku od dva dana.

Radi zaštite od zloupotrebe, Google reCAPTCHA proverava ovo slanje. Pritom se podaci prenose Googleu. Skripta se učitava tek kada otvorite ovaj formular.

← Sve objave

Dva načina da pogrešno izbrojite dnevnik pristupa

O sadržaju i njegovoj proveri

U ovom članku

Nedelja promena ovde počivala je na brojanjima uzetim iz jednog dana dnevnika pristupa: milion redova, od kojih je sto hiljada naših. Da bi se saznalo da li je išta od toga upalilo, ista brojanja moraju da se ponove kasnije — a brojanja sastavljena ručno po drugi put nikada nisu sasvim ista kao prva. Drugačija lista botova, drugačiji vremenski raspon, drugačiji grep.

Zato je brojanje preseljeno u alat sa osnovnom vrednošću upisanom u njega kao konstantom. Prvo pokretanje išlo je na isti dnevnik iz koga potiče osnovna vrednost. Sve je moralo da ispadne jednako.

Dve linije nisu. U oba slučaja alat je bio u pravu, a prvobitno brojanje pogrešno.

izbrojanozapravovlasnički token10nedeljni feed0398oba brojanja bila su pogrešna u suprotnim smerovima

grep čita celu liniju

Glavni nalaz nedelje bio je da se vlasnički token u celom danu pojavio jednom. Izbrojan je obrascem poređenim sa celim redovima dnevnika — a red dnevnika sadrži zahtev, ali i referer i korisnički agent.

Jedino poklapanje bio je niz &t= unutar referer adrese jednog pretraživača. Neko je stigao sa mobilnog rezultata pretrage čija je adresa slučajno sadržala ta dva znaka. U samim zahtevima token se pojavio nula puta.

Nalaz je postao jači, što je čudan način da se pogreši. Ipak je pogrešan. Prvo izdvojite polje zahteva — to je drugo polje pod navodnicima u objedinjenom redu dnevnika — pa tražite unutar njega.

Lanac else-if proguta konkretan slučaj

Drugo brojanje je reklo da je nedeljni feed preuzet nula puta. Klasifikacija je izgledala razumno:

if (url contains "/live/") ... else if (url contains "feed.xml") ...

Adrese feeda na ovom sajtu su /live/<number>/feed.xml. Svaka je pogodila prvu granu i nikad nije stigla do druge. Prava vrednost je bila 398.

Zaključak izveden iz pogrešnog broja slučajno je preživeo: tih 398 zahteva ravnomerno je raspoređeno na svih jedanaest jezičkih prefiksa pod tri opšta niza oznaka pregledača, što je bot koji uzima svaki prevod, a ne pretplatnik. Niko se nije pretplatio. Ali „niko se nije pretplatio“ i „nula zahteva“ nisu isti iskazi, a drugi je citiran više puta pre nego što je iko proverio.

Provera koja hvata oba

Pokrenite alat za brojanje na tačno onaj dan iz koga potiče osnovna vrednost. Svaka linija mora da ispadne jednaka. Sve što ne ispadne jednako ili je greška u alatu ili je greška u prvobitnom brojanju, a koja je od to dvoje, ispliva pre nego što je važno, a ne posle.

Trebalo je jedno pokretanje i oko četiri minuta. Oba broja su do tada već bila napisana, i nijedan ne bi bio uhvaćen pažljivijim čitanjem koda — već samo time što je merenje samo odgovaralo za sebe.

Oglas