PDF-Bericht für ZEITRAUM funktioniert nicht!


#1

Hallo,

ich nutze die aktuelle Version 1.12.

Komischerweise funktioniert die Erzeugung von Berichten tadellos bis auf eine Ausnahme: Wenn ich einen ZEITRAUM definiere, für den der Bericht erzeugt werden soll und klicke dann auf PDF-Download, erscheint lediglich eine weiße Seite. Tage, Wochen, Monate etc. funktionieren dagegen einwandfrei.

Ist das auch bei Euch so?

Danke und Gruß
piwiktestit


(Peterbo) #2

Der PDF-Bericht über einen benutzerdefinierten Zeitraum erfordert eine höhere bzw. längere Rechenleistung des Servers. Eine weiße Seite ist ein Indiz dafür, dass der Server die Berechnung abbricht wg. z.B. einem Timeout oder Speichermangel.

-> In das Server Error-Log schauen und dann die jeweilige Einstellung anpassen.


#3

Hallo,

es handelt sich um einen Root-Server mit 8GB RAM und zeitgemäßer CPU mit 8 Kernen.

Wenn Piwik es in der Tat nicht schaffen sollte, unter o.a. Voraussetzungen einen Bericht von Mai bis November für einen Webseite mit ca. 8000 Besuchern pro Monat zu generieren, würde mich das - nach allem, was ich bisher über Piwik lesen konnte - sehr wundern!

Viele Grüße
piwiktestit


(Peterbo) #4

Wie der Server ausgestattet ist, ist dabei völlig egal. Wenn PHP nur maximal 64 MB Speicher zur Verfügung hat (Konfig-Einstellung), dann wird die Ausführung einfach abgebrochen. Genauso verhält sich das mit der maximalen Ausführungszeit.


#5

Ich habe nirgends geschrieben, dass bei mir memory_limit auf 64MB (sondern 200 MB) und max_execution_time (immerhin 1200) auf einen niedrigen Wert gesetzt ist!

Gruß
piwiktestit


(Peterbo) #6

Oh Mann, 64MB war doch nur ein Beispiel. Für 8000 Besucher / mon. mit allen Aktionen und Datenpunkten über eine längere Zeitspanne kann auch 200MB knapp werden. Wir haben Instanzen im Einsatz, die 4GB Speicher und mehr verwenden. Allerdings auch bei größerer Besucherzahl.

Bevor es jetzt noch 5 Mal hin und her geht: Bitte schau doch einfach mal in das error-log und passe, gemäß dem angezeigten Fehler, die Konfiguration an. Bei einem Abbruch der Ausführung steht dort auch mit Sicherheit etwas.


#7

“Oh Mann”! :smiley:

Glaubst Du im Ernst, ich betreibe einen Root-Server und schaue nicht in ein LogFile?

Kurzum: Deine Annahme bzgl. Memory- und Timeout-Limits trifft nicht zu! Mal ganz abgesehen davon, dass Blank-Page viel zu schnell kommt und bereits aus diesem Grund nicht auf einen Timeout zurückzuführen sein kann!

Ich habe inzwischen den Berichtszeitraum testweise auf EINEN Tag beschränkt. Am Ergebnis ändert sich nichts: Weiße Seite!
Bliebe zu erwähnen, dass aber bei jeglichem BerichtsZEITRAUM das Versenden des PDFs funktioniert.

Ich bin der Sache nun mal etwas näher auf den Grund gegangen.

Apache/2.2.23
PHP 5.3.21

Nach Request bspw. des PDF-Downloads für 1.11.2013 bis 2.11.2013 entstehen folgende LOG-Einträge:


Apache access.log
GET /statistik/index.php?module=API&action=index&idSite=1&date=2013-11-01,2013-11-02&period=month&token_auth=XY&method=PDFReports.generateReport&idReport=1&outputType=3&language=de HTTP/1.1" 500 -

error_log (PHP)
PHP Fatal error:  Call to undefined method Piwik_DataTable_Array::getRows() in /usr/local/www/piwik/plugins/MultiSites/API.php on line 256

Selektiert man explizit TAG als Berichtszeitraum:


GET /statistik/index.php?module=API&action=index&idSite=2&date=2013-11-01&period=month&token_auth=XY&method=PDFReports.generateReport&idReport=1&outputType=3&language=de HTTP/1.1" 200

Der Unterschied besteht letztlich offenbar nur in:
date=2013-11-01,2013-11-02

Ich habe mod_security für den Test deaktiviert. Daran scheint es folglich nicht zu liegen.
Rein vorsorglich werde ich nun nochmal eAccelerator deaktivieren.
(EDIT: An eAccelerator liegt es wohl leider auch nicht!)

Einen schönen 2. Advent!

piwiktestit


(Peterbo) #8

Hi,

bei “period=month” darf es im Parameter “date” nur eine Datumsangabe geben, z.B. “date=2013-12-09”. Aber da sollte auch eigentlich eine schönere Fehlermeldung kommen (teste auf Piwik 2.0 b10). Wenn mehrere Daten angegeben werden, muss der Parameter den Wert “range” bekommen, also “period=range”.

Ich hoffe nicht! - Aber wieso postest Du dann die Fehlermeldung erst jetzt? - Die ist doch zum Debuggen das Wichtigste, wenn eine “blank page” erscheint… :wink:

Ist das eine produktive Instanz, oder kannst Du mit den Daten auchmal die Version 2.0 b11 testen, ob der Fehler weiterhin besteht? Achtung, beim Update werden irreversible Änderungen in der Datenbank vorgenommen!

Grüße


#9

Hallo,

kein Problem, ich könnte die Version 2.0 b11 durchaus testen, wenn Du mir schreibst, wie man an diese Version gelangt.

Was ich nicht verstehe: Ich hatte oben ja geschrieben, dass ich testweise TAG als Berichtszeitraum angegeben hatte.
Ist das normal, dass dann wieder perdiod=month übergeben wird?
Man könnte ja annehmen, dass dann eher period=day übergeben würde …

Viele Grüße
piwiktestit


(Peterbo) #10

Die Piwik Betas bekommst Du hier: http://builds.piwik.org/

Der PDF Report speichert die beim Anlegen eingestellte Zeitspannen-Angabe. Wenn man den Bericht öffnet (“Ändern”) und eine andere Angabe im Date-Selektor macht “Tag/Woche/Monat/Jahr/Zeitraum”, dann wird diese Eigenschaft im Report geändert und damit auch der parameter “period”.

Der Selektor für den “E-Mail-Zeitplan” hat allerdings nicht mit der im bericht enthaltenen Zeitspanne zu tun. Er bestimmt lediglich, wann der Bericht zugeschickt werden soll.

Grüße
Peter