OpenStats

Takže pracujete na webové aplikaci ale potřebujete flexibilní způsob jak logovat a počítat statistiky návštěvnosti. No, možná tento projekt je řešením které hledáte - je založen na PostgreSQL (ale nemělo by být příliš složité ho portovat na jinou databázi).

Tento projekt je hostován na sourceforge.net, a to na adrese http://openstats.sf.net (resp. http://apps.sourceforge.net/trac/openstats/).

Tento projekt je určen pro vývojáře, neboť vyžaduje aktivní používání knihovny ve vaší aplikaci. To je na jednu stranu nevýhoda oproti nástrojům založeným na analýze access logů a proti nástrojům založeným na vložení malého obrázku nebo JS kódu (například Google Analytics). Na druhou stranu to poskytuje možnosti které by jinak byly nemyslitelné.

OpenStats je v podstatě celkem jednoduchý projekt - má následující části:

  • databázová struktura - Na tomto místě jsou uložena všechna sesbíraná data. Struktura databáze je poměrně univerzální takže je možno zalogovat všechna potřebná data, a je dobře popsána.
  • logovací knihovna - Jednoduchá knihovna jejímž jediným úkolem je zalogovat všechna data. Neprovádí žádnou analýzu, žádné časově náročné operace - pouze zaloguje data která obdrží. V PHP se jedná o jediný 10kB soubor obsahující jedinou třídu, a tak je celkem jednoduché ji portovat do jiného jazyka (Javy, například).
  • analytická knihovna - Knihovna zajišťující zpracování dat uložených logovací knihovnou, tak aby je bylo možno rychle zobrazit v poskytovaném GUI (viz. dále). Tato knihovna se ve vašem aplikačním kódu vůbec neobjevuje, načítá se pouze z (cronových) skriptů.
  • reportovací knihovna - Knihovna načítající data vygenerovaná analytickou knihovnou. Používá se výhradně v reportovacím GUI, ale můžete ji použít i přímo (a zobrazit data v jiné aplikaci).
  • reportovací GUI - Používá se pro zobrazení reportů vygenerovaných analytickou knihovnou a načtených reportovací knihovnou.

Aktuálně je dostupná pouze PHP verze tohoto balíku - vyvinul jsem i Java verzi logovací knihovny, ale ta je příliš úzce provázaná s příslušnou webovou aplikací, takže nedává smysl ji zde prezentovat.

Články o projektu