FHEM.de Statistik - wie kann ich neue models hinzufügen

Begonnen von Markus Bloch, 11 Januar 2014, 13:39:35

Vorheriges Thema - Nächstes Thema

betateilchen

Ein Online-Betrieb ist m.E. auch nicht notwendig, es dürfte reichen, die Statistik einmal pro Tag zu generieren.

Die lange Verarbeitungszeit ist aber auch nicht verwunderlich, wenn man mal eben grob rechnet:

13000 submissions * 1000 Spalten = 13 Mio auszuwertende Felder

Das ganze wird bisher mindestens vier mal durchlaufen und dabei wird gezählt und aufsummiert. Zwischendurch müssen auch noch für 13000 Einträge aus IP Adressen die Geodaten ermittelt werden.

Das Statistikmodul war unbestritten einmal eine gute Idee, aber ich denke, über ein solches Datenvolumen hat sich nie jemand Gedanken gemacht - und das ist jetzt ausdrücklich KEIN Vorwurf gegen irgendjemanden. Man muss einfach schauen, wie man das Ganze "zeitgemäß" lösen und verbessern kann.

Im Moment bin ich dabei, das Skript soweit zu verändern, dass es bei Verwendung der bisherigen Datenstruktur erstmal auf meiner aktuellen Plattform läuft, es scheint da derzeit auch noch Versionsabhängigkeiten von perl und/oder sqlite3 zu geben, die das aktuell verhindern.

Ausserdem will ich das Modul in die Lage versetzen, eine aktuelle Geo-Datenbank zu benutzen und nicht die bisherige, die zwei Jahre alt ist.

Sobald ich diese Punkte abgehakt habe, werde ich die statistics.cgi einchecken, dann kannst Du sie gegen die Datenbank auf Deinem Server testen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 18 März 2015, 11:42:31
Sobald ich diese Punkte abgehakt habe, werde ich die statistics.cgi einchecken, dann kannst Du sie gegen die Datenbank auf Deinem Server testen.

https://git.fhem.de/bugzilla/show_bug.cgi?id=14

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

- habe zwei weitere Dateien (admin.cgi + mkpasswd.pl) eingecheckt, weiss nicht, ob sie benoetigt werden, sie lagen aber herum auf dem Server.
- habe den Zugriff auf stats/data/* untersagt, es ist mir unheimlich, wenn jeder die sqlite DB runterladen kann
- deswegen habe ich stats/data/style.css nach stats/style.css geschoben.
- bei der Verwendung von style.css war das Logo weg (das Bild ist nicht im stats Verzeichnis), deswegen habe ich erstmal wieder das alte style.css aktiviert. Es waere mir lieber, wenn statistics.html Anpassungen durch einen zusaetzlichen css (stats/style.css) erfolgen wuerden, der nur die Unterschiede zum alten enthaelt.
- habe eine aktuelle GeoLite db heruntergeladen und verwendet.
- Wie kan ich in bugzilla etwas aendern? Ich habe nur ein .ssh Zertifikat, aber kein Passwort. Muss ich mein Passwort zuruecksetzen?

betateilchen

Zitat von: rudolfkoenig am 22 März 2015, 14:05:51
- Wie kan ich in bugzilla etwas aendern? Ich habe nur ein .ssh Zertifikat, aber kein Passwort. Muss ich mein Passwort zuruecksetzen?

Über den "Passwort vergessen" Link ein Passwort anlegen. Das ssh Zertifikat ist für git, nicht für bugzilla.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Interessant... wenn man die Statistik nur über die Daten der letzten 12 Monate fährt, reduziert sich das Datenvolumen um fast 50%.

Und die Ergebnisse sehen - vor allem, was die Verwendung von fhem Versionen angeht - erwartungsgemäß etwas anders aus:

(http://up.picr.de/21371210uv.jpg)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Schoen waere diesen Filter einstellen zu koennen. Geht natuerlich nur, wenn es online laeuft.

betateilchen

Im Moment bin ich dabei, die bestehende Statistik generell auf die letzten 12 Monate zu filtern. Mit der derzeitigen Datenstruktur ist ein online-Modus jedenfalls nicht denkbar.

Im Offline-Modus könnte man natürlich einfach drei Statistiken fahren (1-Monat, 12-Monate, Ewigkeit) und diese per Link in der Navigation bereitstellen. Einem cronjob ist es egal, ob er in der Nacht eine oder drei Auswertungen erstellt. Allzuviele Filterstufen machen eh nicht sonderlich Sinn.

Wenn ich im nächsten Schritt über ein Redesign der Auswertung nachdenke, werde ich auch prüfen, ob sich ein online-Modus sinnvoll realisieren lässt. Immer schön einen Schritt nach dem anderen :)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!