93_DbLog - Überlegungen zur Optimierung (RPI und andere Systeme)

Begonnen von JoeALLb, 27 Januar 2017, 22:16:19

Vorheriges Thema - Nächstes Thema

DS_Starter

Hallo Julian,

ZitatZur Ermittlung der aktuellen Datenbankgröße habe ich folgende Helfer-Devices definiert

Das gibt es bereits im DbRep. Und auch für alle unterstützen Datenbanken mit entsprechender Abfrage die je nach Typ unterschiedlich sind. Alles nonblocking, falls es länger dauert  ;)

MySQL:  get ... tableinfo
SQLite:  get ... svrinfo
Postgre: get ... svrinfo

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Loredo

Ah merci, habe ich übersehen, da sie nicht als Getter in der UI angezeigt werden :)


Sent from my iPhone using Tapatalk
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

JoeALLb

Wurde im Modul etwas für die Selektierung der Datensätze zum Anzeigen von Plots geändert?

Mir ist heute aufgefallen, dass meine Plots nicht mehr um Mitternacht enden, und das, obwohl um 00:00 des Folgetags
ein Eintrag in der Datenbank steht! Dies wurde bisher geplottet!
Nun ist mir aufgefallen, dass auch Einträge um 23:59:59 nicht mehr geplottet werden, lediglich um 23:59:58.
Ein Blick in das SQL-Log verrät den Grund:

  FROM history WHERE 1=1 AND DEVICE  = 'DEVICE' AND READING = 'position' AND TIMESTAMP >= STR_TO_DATE('2018-06-27 00:00:00', '%Y-%m-%d %H:%i:%s') AND TIMESTAMP < STR_TO_DATE('2018-06-27 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP

< STR_TO_DATE('2018-06-27 23:59:59')  führt natürlich zu diesem Ergebnis.

Mir ist im Changelog jedoch diesbezüglich nichts aufgefallen,.... habe ich etwas verpasst?

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo Joe,

Im modul ist schon sehr lange nichts mehr geändert. Der letzt Change von vor ein paar tagen betraf nur ergänzungen in der hilfe.

SG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Danke Heiko,

vermutlich hängt es mit diesen Changeset  im Modul SVG zusammen.
Zeitstempel:
    25.02.2018 20:55:59 (vor 4 Monaten)
Autor:
    rudolfkoenig
Nachricht:

    98_SVG.pm: correct from/to limits (Forum: #84691)

https://svn.fhem.de/trac/changeset/16275

Jetzt ist nur die Frage, wer recht hat, da es dort ja hauptsächlich um Jahresansichten ging.
Ob man DbLog daraufhin nachziehen muss oder dort noch etwas ändern muss, ist mir im Moment nicht klar.

Jedenfalls sollte ein Tag nicht um 23:59:58 enden, denke ich ;-)


sG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

stromer-12

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

DS_Starter

Frage doch in dem thread mal nach. Wenn klar ist das wegen diesem change noch etwas im dblog nachgezogen werdem musd mache ich das gerne, muss nur wissen was.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Rudi hat uns gebeten, das auf Seite von DbLog zu korrigieren,
da es in SVG einen großen Rattenschwanz nachziehen würde.
Was ich jedoch noch nicht herausgefunden habe ist, mit welchem Aufruf genau SVG die Daten eines Tages bei DbLog "anfordert".
Wenn ich es recht verstehe, müsste DbLog diese Anforderung dann anders umsetzen, um eben nicht die Einschränkung auf "23:59:58"
zu legen... ?!

Stellen wie
$stm2 .= "AND TIMESTAMP < $sqlspec{to_timestamp} ";
scheinen erstmal "fast" korrekt ( "AND TIMESTAMP <= "x.x.x 00:00:00" wäre korrekt und würde das alte Verhalten wieder herstellen), wenn  $sqlspec{to_timestamp} mit "...... 00:00:00" vorbelegt wird, aber irgendwo im Code wird das 00:00:00 nochmal abgeändert?!?.

leider komme ich hier mit meinen bescheidenen Perl-Kenntnissen gerade nicht weiter!


sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Hallo Joe,

muss ich mir anschauen. Mit meinem SSCam-Modul bin ich erstmal durch und nehme mir dann wieder DbLog/DbRep vor.
Wird aber wahrscheinlich erst nach meinem Urlaub wieder weitergehen.
Es sei denn jemand stellt einen Patch bereit den ich nach Test einfach übernehmen kann.

Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Hallo Heiko,

ich verfolge deine Entwicklungen hier recht genau, auch das SSCam und das Dashboard-Modul ;-) Spannende sachen, vielleicht steig ich auch wieder um auf die Surveillance-Station!
Aber genug OT.
Ich denke, wir warten hier einfach, denn ich kann keinen sauberen Patch liefern. Vielleicht schaff ich einen Workaround, aber so
dringend ist mir das Thema gerade auch nicht, da ich andere Baustellen habe die den WAF mehr beeinflussen.

Bezüglich Partitionierung bin ich übrigens noch am Testen, ob es sich lohnt, eine zusätzliche "decimal"-Spalte einzufügen, um Dezimalwerte direkt dort stall in "value" abzulegen, denn Berechnungen sind damit auch deutlich schneller... Aber... mal sehen!

sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

#745
Hallo Joe, @all,

ich habe die Selectionsanforderung durch das SVG-Modul im DbLog SQL korrigiert.
Dadurch wird der Select nun so ausgeführt:

SELECT DATE_FORMAT(TIMESTAMP, '%Y-%m-%d %H:%i:%s'), DEVICE, READING, VALUE
FROM history WHERE 1=1 AND DEVICE  = 'sysmon' AND READING = 'stat_cpu_percent' AND TIMESTAMP >= STR_TO_DATE('2018-09-02 00:00:00', '%Y-%m-%d %H:%i:%s')
AND TIMESTAMP <= STR_TO_DATE('2018-09-02 23:59:59', '%Y-%m-%d %H:%i:%s') ORDER BY TIMESTAMP


Sollte m.M. nach jetzt wieder passen.

Die Version könnt ihr aus contrib herunterladen:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Bitte mal testen und Feedback geben.

LG
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Hallo Heiko,

danke, dass Du das noch am Schirm hattest.

Die Zeile vergisst aber die letzte Sekunde, denn der Tag geht bis 00:00!
Alles von 23:59:59: bis 00:00:00 gehört noch zum alten tagm und der genaue Zeitpunkt 00:00:00 ist der Anfangs UND auch der Endpunkt für den nächsten Tag.

Daher müsste es
AND TIMESTAMP <= STR_TO_DATE('2018-09-03 00:00:00', '%Y-%m-%d %H:%i:%s') heißen.
(wie es vorher auch war. damals noch in dieser Schreibweise)
AND TIMESTAMP < STR_TO_DATE('2018-09-03 00:00:01', '%Y-%m-%d %H:%i:%s') ,
was jedoch nicht ganz korrekt ist, wenn man Millisekunden aktiviert hat!


sG
Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

DS_Starter

Jetzt ist die letzte Sekunde mit drin.
Der Select dürftr jetzt zufriedenstellend sein:

2018.09.04 17:36:11.040 1: Processing Statement: SELECT
                  TIMESTAMP,
                  DEVICE,
                  READING,
                  VALUE
                   FROM history WHERE 1=1 AND DEVICE  = 'SMA_Energymeter' AND READING = 'Bezug_Wirkleistung'
AND TIMESTAMP >= '2018-09-03 00:00:00' AND TIMESTAMP <= '2018-09-04 00:00:00' ORDER BY TIMESTAMP

Die Version könnt ihr aus contrib herunterladen:

https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Bitte wieder testen und Feedback geben.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hat denn mal jemand außer mir diese Änderung bzgl. Datenselektion für SVG ebenfalls getestet ??
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

JoeALLb

Ich habs installiert und kurz angetestet. Bisher nichts negatives aufgefallen, jedoch ist der Test krankheitsbedingt bisher nur oberflächlich ausgefallen...

Sorry.
SG Joe
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270