Piwik Archivierung


(Khabaal) #1

Hallo, ich hätte einmal eine Frage zu den beiden Einstellungsmöglichkeiten…

[attachment=1601:picture.jpeg]

Wenn die Archivierung über einen Crontab getriggert wird, sagen wir mal um 00.05 Uhr täglich, was bei mir der Fall ist, dann bin ich bisher davon ausgegangen das die zweite Einstellung “Verarbeitung von Berichten für heute geschieht maximal alle… (1800sek)” alle 1800 Sekunden eine Verarbeitung der Tagesstats des laufenden Tages einleitet, getriggert durch den Browser.

Mir ist aber aufgefallen das, nachdem ich die Archivierung auf Cron umgestellt habe für den laufenden Tag keinerlei Stats angelegt werden, diese werden erst verfügbar nachdem am Folgetag um 00.05 Uhr alle Stats verarbeitet werden.

Meine Frage wäre daher, bezieht sich die Zeiteinstellung 1800sek auf die Abstände zwischen den Archivierungsvorgängen wenn die Archivierung durch den Browser getriggert wird und wird diese Einstellung durch das Umstellen auf Cron hinfällig, oder sollte trotz Cronjob alle 1800sek eine Archivierung der Tagesstats stattfinden und wenn dies der Fall ist, was triggert diese Archivierung?


(edvsb) #2

Äm ja…

Ich möchte nun nichts falsches sagen, aber so wie ich das noch in Erinnerung habe sind das grundsätzlich zwei unterschiedliche Dinge. Das eine ist die “Verarbeitung der heutigen Daten” und das andere die “Archivierung” der bereits verarbeiteten Daten.

Die Archivierung machst Du per Cron, soweit ok. Aber angezeigt wird nur, was archiviert ist. (glaube ich zumindest)

This cron job will trigger the day / week / month / year archiving process at 00:05AM every day. This will make sure that when you visit your Piwik Interface, the data has already been processed: Piwik will load fast.

Die täglichen Daten werden bei Dir also schon verarbeitet, alle 1800 Sekunden, aber eben die Archivierung nur einmal am Tag um 0:05 Uhr. Also siehst Du die Daten dann auch erst. Die 1800 Sekunden sind nur dafür da, damit die tägliche Auswertung nicht permanent läuft, sondern eben nur in einem gewissen Intervall. So denke ich mir das zumindest, habe aber dabei auch immer wieder die gleichen Probleme. Wirklich verstehen tue ich es nicht.

Ich für meinen Fall habe den Cron auf alle 60 Minuten eingestellt und die Verarbeitung der heutigen Daten auf 1800 Sekunden. Somit habe ich alle 60 Minuten neue Daten im Dashboard.

Gruß, Ingo

[quote=Khabaal @ Jul 29 2010, 08:03 AM]Hallo, ich hätte einmal eine Frage zu den beiden Einstellungsmöglichkeiten…

[attachment=1601:picture.jpeg]

Wenn die Archivierung über einen Crontab getriggert wird, sagen wir mal um 00.05 Uhr täglich, was bei mir der Fall ist, dann bin ich bisher davon ausgegangen das die zweite Einstellung “Verarbeitung von Berichten für heute geschieht maximal alle… (1800sek)” alle 1800 Sekunden eine Verarbeitung der Tagesstats des laufenden Tages einleitet, getriggert durch den Browser.

Mir ist aber aufgefallen das, nachdem ich die Archivierung auf Cron umgestellt habe für den laufenden Tag keinerlei Stats angelegt werden, diese werden erst verfügbar nachdem am Folgetag um 00.05 Uhr alle Stats verarbeitet werden.

Meine Frage wäre daher, bezieht sich die Zeiteinstellung 1800sek auf die Abstände zwischen den Archivierungsvorgängen wenn die Archivierung durch den Browser getriggert wird und wird diese Einstellung durch das Umstellen auf Cron hinfällig, oder sollte trotz Cronjob alle 1800sek eine Archivierung der Tagesstats stattfinden und wenn dies der Fall ist, was triggert diese Archivierung?[/quote]


(Khabaal) #3

Vielen Dank für deine Antwort Ingo,

so in etwa hatte ich mir das dann auch gedacht. Allerdings macht das nicht viel Sinn wenn es wirklich so sein sollte. Warum sollte man alle 1800 Sekunden eine Zwischenverarbeitung ausführen wenn die verarbeiteten Daten doch erst um Mitternacht durch Abarbeiten des Cronjob verfügbar gemacht werden würden. Es wäre in diesem Falle sinnvoller gleich alle Verarbeitungsoperationen mitten in die Nacht zu legen wo die meisten Ressourcen frei sind und die Verarbeitung am wenigsten stört.
Mal abwarten was die Dokumentation sagt wenn sie fertig ist.


(Thomas Seifert) #4

Es gibt keine “Zwischenverarbeitung”. Der Cronjob macht alle Verarbeitungsprozesse, wenn dieser aktiviert ist.
Also kannst Du auch erst neue Daten im Dashboard sehen, wenn der Cronjob lief.


(edvsb) #5

Na da habe ich mich wohl falsch ausgedrückt, wie gesagt, bin mir auch nicht sicher wie das nun genau ist, aber so wie Du schreibst ist es auch nicht (zumindest wenn ich das richtig gelesen habe).

Wenn ich z.B. 1800 Sekunden einstelle und den Cron dann per Hand alle paar Minuten starte, dann kommen nur beim ersten mal neue Daten. Dann erst wieder nach Ablauf der 1800 Sekunden. So irgendwie hatte ich das damals auch im englischen Forum gelesen (v0.5). Wenn die 1800 Sek, so wie Du schreibst, nichts zu bedeuten hätten, dann wäre ja die komplette Doku falsch, denn da steht ja man soll von 10 Sekunden auf 1800 bzw. 3600 gehen und den Cron aktivieren.

Irgendwas hatte ich da gelesen… Ich bekomme es nur nicht mehr zusammen… War irgendwas mit der Visit-DB und dem Archive… Und auch irgendwas davon, dass die täglichen Visits nicht nach jedem Durchlauf bereinigt / neu gespeichert werden, sondern so lange immer komplett neu abgearbeitet werden bis die Archivierung durch ist. Aber wie gesagt, ich bekomme es nicht mehr wirklich sinnvoll zusammen…

In der Db steige ich eh nicht wirklich durch. z.B. was ist piwik_log_link_visit_action und was piwik_log_visit.

In der piwik_log_visit stehen Daten von März bis heute, aber bei weitem nicht alle. in der piwik_log_link_visit_action sind über 8 Mio Datensätze, weiß der Geier warum. In der piwik_log_action sind auch 4 Mio. Scheinen dort wohl URLs und Seitentitel zu sein. (Wie werden die bereinigt?)

Die komplette DB braucht aktuell 4,5 GB, also so wirklich durchsteigen tue ich da nicht :frowning:

[quote=Thomas Seifert @ Jul 29 2010, 10:10 AM]Es gibt keine “Zwischenverarbeitung”. Der Cronjob macht alle Verarbeitungsprozesse, wenn dieser aktiviert ist.
Also kannst Du auch erst neue Daten im Dashboard sehen, wenn der Cronjob lief.[/quote]


(Thomas Seifert) #6

Ich habe nicht gesagt, dass die 1800 Sekunden nichts zu sagen hätten aber im Browser wird keine Verarbeitung ausserhalb des Cronjobs vorgenommen. Das würde ich sonst deutlich merken ;-).
Bei mir läuft der Cronjob auch wegen seiner Laufzeit von 2 Stunden nur einmal pro Tag in der Nacht.

Diese Sekundeneinstellung sagt (laut Doku) nur aus, ab wann der Cronjob (oder welche Archivierung auch immer) überhaupt erst wieder Arbeit erledigt.
Wenn Du diese auf 1800 Sekunden setzt, dann kannst Du Cronjob auch minütlich aufrufen, er wird aber erst nach 1800 Sekunden (also einer halben Stunde) überhaupt erst wieder Arbeit verrichten - was Du ja auch schon festgestellt hast.
(ob das in der GUI noch irgendwo andere Effekte hat, kann ich nicht sagen aber eine Zwischenarchivierung wird damit auf jeden Fall nicht vorgenommen und damit auch keine verschiedenen Verarbeitungsstufen)


(edvsb) #7

Na das ist doch dann einmal ein anderer Ansatz (das mit dem Browser war klar, meinte ich auch nicht)

Aber dass der Cron erst wieder “arbeitet” wenn die 1800 Sekunden vorbei sind, das wäre dann auch eine Erklärung. Hatte das bisher immer anders herum gesehen. Irgendwo stand das auch und einer hatte es in seine Blog stehen, ist aber schon länger her, damals war noch 0.4 aktuell und ich hatte die 0.5rc laufen. Ich entsinne mich da nämlich noch, dass der Zeitintervall für den Cron nicht kürzer sein durfte als die Einstellung im Adminbereich.

Aber bei Dir sind es 2 Stunden? Ich hatte auch mal Zeiten von jenseits 30 Minuten, das war aber nur, als ich den Cron alle 12 Stunden laufen ließ. Dann hab ich das verkürzt und es dauert nun nur noch ca. 5 Minuten. Daher, das Zusammenspiel ist nicht wirklich klar.

Wobei… Wenn dem so ist, dann ist es doch egal welchen Wert ich einstelle, wenn der Cron eh nur einmal am Tag läuft oder wie bei mir, alle 60 Minuten. Dann ist der Hinweis in der Doku doch falsch. Ist dann ja egal ob 10, 1800 oder 3600 Sekunden.

Das “This cron job will trigger the day / week / month / year archiving process at 00:05AM every day”

und das " * Allow Piwik archiving to trigger when reports are viewed from the browser: No
* Reports for today will be processed at most every: 3600 seconds"

Passt dann ja nicht zusammen. Warum soll ich bei einer Medium-High-Seite den Wert auf 3600 erhöhen, wenn der Cron nur einmal um 0:05 Uhr läuft?

Das würde ja nur einen Sinn ergeben, wenn der Cron stündlich läuft… Wobei auch hier, der Code dazu ist ja stündlich, die Textbeschreibung aber täglich
"5 * * * * /path/to/piwik/misc/cron/archive.sh > /dev/null"
“This cron job will trigger the day / week / month / year archiving process at 00:05AM every day”

Abgesehen davon, dass sich die Doku da selbst widerspricht, wäre es immer noch egal, ob es nun 1, 10 oder 100 Sekunden sind. Der Cron zählt. Aber auch hier unterscheiden die Doku zum einen zwischen:
“trigger the day / week / month / year archiving process” -> macht der Cron
und dem today-Report -> Den macht auch der Cron, aber der müsste was anderes sein als das Archive style_emoticons/<#EMO_DIR#>/unsure.gif

Und nun bin ich wieder da wo ich vorher war, nämlich dass es zwei getrennte Dinge sind. Mist… zu früh gefreut… Gedanklich bin ich nun immer noch oder wieder bei:
Visits -> werden verarbeitet zum “daily-Report”. Der daily-Report vom Vortag wird zum Archive für Tag / Woche / Monat / Jahr.

Und zum Thema Zwischenschritt. Ich würde schon sagen, dass da einer gemacht wird, sonst würde das für “Today” keinen Sinn ergeben, ist nämlich auch nur nur beim aktuellen Tag.

idarchive     name     idsite     date1     date2     period     ts_archived     value
55650     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 04:00:02     2088
55687     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 04:30:02     2238
55724     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 05:00:02     2238
55761     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 05:30:03     2435
55798     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 06:00:03     3963
55835     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 06:30:11     4609
55872     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 07:00:23     4903
55909     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 07:30:37     7713
55946     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 08:01:06     9839
55983     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 08:30:05     14739
56020     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 09:00:06     16798
56057     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 09:30:08     24308
56094     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 10:00:07     27413
56131     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 10:30:08     31399
56168     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 11:00:13     33280
56205     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 11:30:10     36189
56242     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 12:02:18     45446
56279     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 12:30:15     49970
56316     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 13:00:10     53904
56353     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 13:32:50     58976
56390     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 14:00:11     59722
56427     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 14:30:13     60737
56464     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 15:00:29     61286
56501     sum_visit_length_returning     1     2010-07-29     2010-07-29     1     2010-07-29 15:30:35     63176

[quote=Thomas Seifert @ Jul 29 2010, 02:35 PM]Ich habe nicht gesagt, dass die 1800 Sekunden nichts zu sagen hätten aber im Browser wird keine Verarbeitung ausserhalb des Cronjobs vorgenommen. Das würde ich sonst deutlich merken ;-).
Bei mir läuft der Cronjob auch wegen seiner Laufzeit von 2 Stunden nur einmal pro Tag in der Nacht.

Diese Sekundeneinstellung sagt (laut Doku) nur aus, ab wann der Cronjob (oder welche Archivierung auch immer) überhaupt erst wieder Arbeit erledigt.
Wenn Du diese auf 1800 Sekunden setzt, dann kannst Du Cronjob auch minütlich aufrufen, er wird aber erst nach 1800 Sekunden (also einer halben Stunde) überhaupt erst wieder Arbeit verrichten - was Du ja auch schon festgestellt hast.
(ob das in der GUI noch irgendwo andere Effekte hat, kann ich nicht sagen aber eine Zwischenarchivierung wird damit auf jeden Fall nicht vorgenommen und damit auch keine verschiedenen Verarbeitungsstufen)[/quote]


(Thomas Seifert) #8

Today ist auch nur ein Tag.
Ich weiß nicht woher Du die Idee nimmst, dass Heute anders behandelt wird als restliche Tage, kannst Du mich auf die Doku-Zeilen verweisen?

Wenn Du es Zwischenschritte nennen willst: die Archivierung erstellt Tages, Wochen, Monats und Jahreswerte …

Und wegen Dauer … bei ein paar tausend Sites in Piwik dauert das halt ;-).