12 sati noći

Samo jedna obična statistika


12 sati noćiweb statistikarazvoj aplikacija

Na par web stranica o kojima se brinem koristio sam do sada Google Analytics i od početka ovog mjeseca trebalo se prebaciti na GA4. Međutim odlučio sam da to neću napraviti i gledao sam koje su mi alternative. Dvoumio sam se između Plausible i Simple Analyticsa, ali iako je najjeftiniji paket dosta povoljan (€9/mjesečno) kad sam pogledao broj pregleda vidio sam da bi upao u plan od €49/mjesečno što mi je malo previše jer to je nekoliko puta više nego što plaćam hosting za te webove.

Čak sam gledao i naletio na jedno rješenje otvorenog koda (Shynet) koje je napravljeno uz pomoć Djanga koje mi se učinilo zgodnim jer bi se mogao i uključiti u razvoj ako bi to bilo potrebno, ali kako se instalacija bazira na Dockeru to me odbilo jer iako on pojednostavljuje instalaciju i prve korake donosi i dodatni niz problema s kojima se nisam spreman nositi. Pomislio sam da probam to složiti bez potrebe za Dockerom, ali odustao sam čim sam vidio neke npm ovisnosti.

I odlučio sam napraviti svoju jednostavnu statistiku koja će imati ono što meni treba. Kao developera najčešće vas zanima što se trenutno događa na stranici ili što se događalo tijekom dana. Real-time u Google analitici, sa svojim 30 minutnim prozorom, ne može zadovoljiti tu znatiželju i je bio jedan od razloga zašto sam se odlučio rastati od njega.

Kritični element projekta je bila JavaScript skripta za skupljanje podataka, nakon dugo vremena opet sam doživio provale radosti spoznavši kako su razlike među browserima još uvijek dosta prisutne, Can I use je vrlo korisna stranica, a Apple browseri imaju najviše mušica. Nakon što je skripta dovedena do upotrebljivog stanja backend je bio manji problem za napraviti.

Pristup koji sam odabrao je da radim sve od početka, bez ikakvih svojih ili tuđih Cookie-Cutter početničkih kostura. S vremena na vrijeme bi bilo dobro da tako započnete neki projekt jer to je najbolji način da se upoznate s novostima u frameworku. Naravno nisam radio sve od početka, za detektiranje IP adrese posjetitelja koristio sam Python IPWare, a za obradu podataka o pregledniku httpagentparser. Naučio sam kod prvog da treba isključiti obradu HTTP_VIA podatka jer dosta uređaja (Cisco-WSA, McAfee Web Gateway) dodaju u to zaglavlje smeće i ne baš korisne podatke. Odustao sam od nekih korištenijih User agent parsera jer ne znaju jednostavno odrediti operacijski sustav. Ne želim na listi imati Ubuntu, Arch već samo Linux.

U otkrivanju problema dosta je pomogao Sentry čiji je besplatan plan vrlo upotrebljiv, a ima i mogućnost praćenja performansi za što sam prije koristio neka APM rješenja (najviše NewRelic).

Svoje web stranice sam uspješno migrirao na svoju statistiku, na nekima se već vrti više od tjedan dana i nema nekih problema, podaci pristižu. Skripta za prikupljanje podataka ne koristi kolačiće i to je bio jedan od glavnih razloga za njezin razvoj, ne želim posjetitelje gnjaviti s glupim porukama koje iskaču i koje uopće ne razumiju.

Idući korak mi je da se iz podataka koje sjedaju u bazu prikaže što više korisnih informacija i trendova uz pomoć jednostavne nadzorne ploče. Neću širiti krug podataka koji se sada inicijalno sakupljaju iz preglednika, ali u planu je mogućnost sakupljanja željenih informacija koje bi web majstori našli zanimljivim za analizu.

Zašto i čemu ovaj projekt?

Zato što mogu. A i zanimljivije je nego gledanje neke serije. Čini mi se da je web razvoj otišao u jednu prekompleksnu sferu i nema više jednostavnih rješenja. Neću koristiti nikakav CSS predobradnik, neću koristiti nikakav JavaScript framework (osim nekog rješenja za grafove), možda uključim htmx za malo dinamike. Što manje pomičnih dijelova to manje problema.

Ljeto će projekt provesti u jednoj tihoj peglajućoj fazi, a onda na jesen možda bude spreman da ga neki od znatiželjnih i smjelih implementiraju i na svoje stranice.



Ako prvi put komentirate moguće je da se vaš komentar neće isti tren pojaviti na stranici već nakon dodatne provjere. Hvala na doprinosu i strpljenju.