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.




