Closed VIEWSION closed 4 days ago
Ja, das ist (leider) so. Die sessionstats kann ich im Gegensatz zu den anderen Statistiken nicht direkt beim Besuch der Seite aggregieren sondern muss für jeden Aufruf einen Eintrag in der Tabelle anlegen.
Ok - Wie könnte man das optimieren? Wenn ich das über mehrere Jahre laufen lassen möchte, wird das so nicht mehr funktionieren. Man bräuchte wohl so eine Art Archivierung.... Ich hab mir ehrlich gesagt noch nicht genau angesehen wie das technisch funktioniert, aber ich kann mich da gerne mit einbringen.
Man müsste es machen wie Matomo und zwei Datenhaltungen implementieren. Einmal die Rohdaten wie jetzt, und einmal eine aggregierte Archivierung die beim Aufrufen des Addons oder per Cronjob getriggert wird. Aber dann kann man auch gleich Matomo nutzen und aus Redaxo die Besuche per API in Matomo bringen. Dieses Addon ist eher nur für kleine bis mittlere Webseiten ausgelegt.
Was du auch machen kannst, ist die Erfassung der Sessionstats deaktivieren. Dann hast du aber keine Infos mehr zu Besuchsdauer etc.
Hmm... Ok - ich check das mal mit Matomo. Was mir halt gefällt ist die Tatsache dass man mit deinem AddOn im Frontend nicht erkennen kann ob da ein Tracker läuft. Bei Matomo wird ja standardmäßig ein JS geladen... aber ich glaube da gibt es auch eine Alternative über PHP... muss ich mal testen. Danke!
@VIEWSION schau mal hier, es gibt einen PHP Tracker für Matomo. https://github.com/matomo-org/matomo-php-tracker/ und https://developer.matomo.org/api-reference/PHP-Matomo-Tracker. Da kannst du bestimmt relativ einfach im Projekt-Addon damit einen Request absetzen wenn ein Seitenaufruf stattfindet.
Folgende Optimierungen sind auf Datenbankebene möglich:
Das gesagt sind 150 für eine Datenbank doch ein Klacks. Da brauchst du mehr als 10 Jahre, bis die Datenbank an den 2 GB kratzt.
Weiter geht's in #115
Hi,
ich hab das Problem dass die Tabellen ungewöhnlich groß werden. Das AddOn ist jetzt ca. 1 Jahr aktiv und allein die rex_pagestats_sessionstats hat schon fast 150MB. Kann das sein?
Danke!