statistics icon indicating copy to clipboard operation
statistics copied to clipboard

Zeitraumfilterung auf alle Statistikausgaben anwenden

Open iceman-fx opened this issue 4 years ago • 8 comments

Die Zeitraum-Filterung funktioniert schon sehr gut für das Diagramm. Es wäre aber schöner, wenn alle Auswertungen entsprechend des Zeitraumes angepasst werden würden.

iceman-fx avatar Nov 09 '21 08:11 iceman-fx

Wenn du die Statistiken für Browser, Gerät, etc meinst, kann man diese seit Version 2 nicht mehr filtern.

Ich habe die Tabellenstruktur angepasst, weil es bei @TobiasKrais extreme Performance Probleme gegeben hat nach einigen Wochen. Um dann schlank und performant bleiben zu können, habe ich da das Datum weggelassen, damit die Tabelle nicht wieder ausufert von der Größe her.

Ist das für deinen einsatzzweck ein großer Verlust @iceman-fx ? Wenn ja, muss man sich nochmal angucken ob man das nochmal anpassen möchte.

AndiLeni avatar Nov 09 '21 09:11 AndiLeni

Naja, die Statistiken sind so nicht wirklich aussagekräftig, da man nicht prüfen kann, wie z.B. eine Werbung die Zugriffe im bestimmten Zeitraum beeinflusst hat. Und genau solche Szenarien sind eigentlich der Sinn einer Statistik.

Frage: Erzeugst Du aktuell alle Statistiken gleichzeitig immer live bei der Anzeige aus dem großen Datenbestand?

iceman-fx avatar Nov 09 '21 09:11 iceman-fx

Um Performance zu sparen wären u.U. folgende Ansatzpunkte relevant:

  • Einzelstatistiken jeweils per Ajax einzeln abrufen anstatt alle auf einmal
  • Tagesdaten nicht aus gesamten Datenbestand live erzeugen, sondern täglich die Tagessummen (Cronjob) zwischenspeichern

iceman-fx avatar Nov 09 '21 09:11 iceman-fx

Mhmm, ja verstehe. Du möchtest also auch die Browser, Gerätetypen, etc nach Datum sortieren können.

Die Daten werden alle live erzeugt. Das geht aktuell auch sehr flott.

Von Ajax weiß ich nicht was ich halten soll in diesem Fall, denn es behebt das Problem, nicht sondern verlagert es nur.

Cronjob ist auch schwierig, was ist mit Nutzern die keine cronjobs auf ihrem System nutzen können?

Zudem werden die Daten seit V2 bereits nach Tag aggregiert in der Datenbank gespeichert.

Was man machen könnte, die Tabelle pagestats_data um eine Date Spalte erweitern. Oder jeweils einzelne Tabellen für Browser, Gerätetyp, Hersteller etc anlegen. Bin mir aber nicht sicher ob Letzteres was an Performance bringt oder nur Design-technisch schöner/anders.

AndiLeni avatar Nov 09 '21 09:11 AndiLeni

"Du möchtest also auch die Browser, Gerätetypen, etc nach Datum sortieren können."

Ja, da man halt dann genau sehen kann, was so auf der Webseite im Zeitraum x los war.

iceman-fx avatar Nov 09 '21 09:11 iceman-fx

Mit Ajax löst man zwar das Problem nicht gänzlich (auch wenn ich selbst noch keine Performanceprobleme hatte), aber man verteilt es, was wiederum die Last in der Summe reduziert, sofern die Quelldaten bereits performant gespeichert wurden.

Sofern kein Cron genutzt werden kann/oder soll dann können die geladenen Daten (Ajax oder Live) auch aufbereitet zwischengespeichert werden, um diese beim 2. Aufruf dann schneller abrufen zu können.

iceman-fx avatar Nov 09 '21 09:11 iceman-fx

Wie und wo würdest du sie zwischenspeichern? Bietet redaxo da bereits Möglichkeiten?

AndiLeni avatar Nov 09 '21 09:11 AndiLeni

In der DB.

iceman-fx avatar Nov 09 '21 10:11 iceman-fx