[DBLog] Wunschliste: Watchdog, Meldungen im state

Begonnen von Christoph Morrison, 14 Februar 2021, 22:14:57

Vorheriges Thema - Nächstes Thema

DS_Starter

#15
Hallo Risiko,

Zitat
Der Export erfolgt genau beim erreichen von cacheOverflowThreshold (cacheOverflowThreshold>cacheLimit) und nicht wie gedacht bei cacheLimit+cacheOverflowThreshold.
Der Export erfolgt wenn cacheOverflowThreshold >= cacheLimit erreicht wird. Die Annahme cacheLimit+cacheOverflowThreshold ist nicht richtig.

ZitatWenn cacheOverflowThreshold < cacheLimit ist, wird genau bei cacheLimit exportiert.
Wenn das Attr cacheOverflowThreshold < Attr cacheLimit ist, wird cacheOverflowThreshold  = cacheLimit gesetzt und deshalb ist es richtig dass genau bei/ab cacheLimit exportiert wird.

Zitat
CacheOverflowLastNum war aber immer Null und CacheOverflowLastState immer normal. Soll wohl nicht so sein,oder?
Also im Normalfall, d.h. im Normalbetrieb ist CacheOverflowLastNum immer Null und CacheOverflowLastState immer normal.
Die Werte ändern sich wenn die Überschreitung stattfindet, aber auch nur solange bis der Normalzustand wieder hergestellt ist.
Es werden entsprechenden Logeinträge bzw. Events generiert und darauf reagieren zu können mit einer Mail/Telegram etc.
Bei meinen Tests ist es auch so, z.B.:


2021.02.28 04:02:33.057 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.02.28 04:11:39.312 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.02.28 04:20:03.156 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.02.28 04:28:32.836 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.02.28 04:36:50.839 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database


Grüße,
Heiko
Proxmox+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

Ich habe die Version jetzt nach rund 2 Wochen Testlauf finalisiert bzgl. (engl.) Hilfe und eingecheckt.

LG,
Heiko
Proxmox+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

Christoph Morrison

Ja, inzwischen hatte ich es mir auch angeschaut und sah mit manuellen DB-offline-Schalten auch gut aus. Danke dir!

Frank_Huber

Morgen Heiko,

Die Nacht ist mein mySQL Server abgeschmiert.
DbLog hat dann wie konfiguriert in Dateien exportiert .

Das Problem jetzt ist, die Dateien sind leer. 0 byte Größe.
Hast Du ne Idee? FHEM und Buster wurden vorgestern aktualisiert.

list:Internals:
   .FhemMetaInternals 1
   COLUMNS    field length used for Device: 64, Type: 64, Event: 512, Reading: 64, Value: 128, Unit: 32
   CONFIGURATION ./db_mysql.conf
   DEF        ./db_mysql.conf .*:.*
   FUUID      5c5334ae-f33f-c13c-5275-6fb8097e577fd169
   FVERSION   93_DbLog.pm:v4.12.1-s24180/2021-04-07
   MODE       asynchronous
   MODEL      MYSQL
   NAME       logdb
   NR         279
   NTFY_ORDER 50-logdb
   PID        862
   REGEXP     .*:.*
   STATE      connected - 14189467 Zeilen
   TYPE       DbLog
   UTF8       1
   dbconn     mysql:database=fhem;host=192.168.12.212;port=3306
   dbuser     fhemuser
   .attraggr:
   .attrminint:
   HELPER:
     COLSET     1
     DEVICECOL  64
     EVENTCOL   512
     OLDSTATE   connected
     PACKAGE    main
     READINGCOL 64
     TC         current
     TH         history
     TYPECOL    64
     UNITCOL    32
     VALUECOL   128
     VERSION    4.12.1
   Helper:
     DBLOG:
       CacheUsage:
         logdb:
           TIME       1619157117.51704
           VALUE      8
       countHistory:
         logdb:
           TIME       1619138700.46488
           VALUE      14189467
   READINGS:
     2021-04-23 07:51:57   CacheOverflowLastNum 0
     2021-04-23 05:59:47   CacheOverflowLastState normal
     2021-04-23 07:51:59   CacheUsage      1
     2021-04-23 07:51:57   NextSync        2021-04-23 07:52:27 or if CacheUsage 50 reached
     2021-04-23 02:45:00   countHistory    14189467
     2021-04-23 07:41:04   lastCachefile   
     2021-04-23 07:51:57   state           connected

Attributes:
   DbLogExclude .*
   DbLogInclude countHistory,CacheUsage
   DbLogSelectionMode Exclude/Include
   DbLogType  History
   asyncMode  1
   bulkInsert 1
   cacheEvents 2
   cacheLimit 50
   cacheOverflowThreshold 500
   group      MySQL
   room       SYSTEM
   stateFormat state - countHistory Zeilen


Danke & Grüße
Frank

DS_Starter

Morgen Frank,

hab jetzt eine Weile drüber nachgedacht, aber noch keine wirkliche Idee.
War vielleicht deine Platte voll ?

Es müssten Meldungen im Log auftauchen:

Zitat
WARNING - Cache is exported to file instead of logging it to database

Dummerweise hab ich gerade gesehen, dass evtl. Fehlermeldungen im Schreibprozess der Dateien nicht zurückgeldet/ausgewertet werden um sie anzuzeigen. Das muß ich ändern.
Ändert aber nichts am Sachverhalt, nur an der Logausgabe.

Sonst irgendwelche Fehler im Log zu sehen ?

LG,
Heiko
Proxmox+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

Frank_Huber

Oh,

AUf der SD sind 9,5 von 16GB frei.
ins Log hab ich heut früh gar nicht geschaut. Sorry. hätte ich gleich machen können.
Laut Log hat er es zwei mal ausgeführt. Also die Datei mit den Einträgen wieder durch eine leere überschrieben.

wäre es hier evtl Sinnvoll bereits existierende Dateien nicht zu überschreiben?
Ist zwar eigentlich unwahrscheinlich durch den Zeitstempel, aber passieren kann es doch. wie bei mir heute...

Log:
2021.04.23 05:56:51.549 2: DbLog logdb -> WARNING - Cache is exported to file instead of logging it to database
2021.04.23 05:56:51.554 3: DbLog logdb: 506 cache rows exported to ./log/cache_logdb_2021-04-23_05-56-51.
2021.04.23 05:56:51.555 3: DbLog logdb: Cache purged after exporting rows to ./log/cache_logdb_2021-04-23_05-56-51.
2021.04.23 05:56:51.575 2: DbLog logdb -> WARNING - Cache is exported to file instead of logging it to database
2021.04.23 05:56:51.578 3: DbLog logdb: 0 cache rows exported to ./log/cache_logdb_2021-04-23_05-56-51.
2021.04.23 05:56:51.581 3: DbLog logdb: Cache purged after exporting rows to ./log/cache_logdb_2021-04-23_05-56-51.


Danke & Grüße
Frank

DS_Starter

Ah ja das ist ja blöd. Vermutlich wäre es gut wenn ich den Timestamp im Namen um Millisekunden erweitere. Dann kann das nicht mehr passieren.
Proxmox+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

Frank_Huber

Ja, das wäre auch ne einfache Lösung für das Überschreiben. :-)

Aber warum wurde es zwei mal ausgeführt? Übrigens bei jeder der Export Dateien 2 mal.

DS_Starter

#23
Das ist eine sehr gute Frage, die ich mir auch schon gestellt habe.
Auf meinem Testsystem provoziere ich es jede Nacht:


2021.04.22 03:17:59.973 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.04.22 03:32:54.566 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.04.22 03:46:35.145 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database
2021.04.22 04:00:36.342 2: DbLog LogDB1 -> WARNING - Cache is exported to file instead of logging it to database


Und die Filegrößen dazu:


-rwxrwxrwx  1 fhem dialout  514782 Apr 22 03:17  cache_LogDB1_2021-04-22_03-17-59
-rwxrwxrwx  1 fhem dialout  532025 Apr 22 03:32  cache_LogDB1_2021-04-22_03-32-54
-rwxrwxrwx  1 fhem dialout  525589 Apr 22 03:46  cache_LogDB1_2021-04-22_03-46-35
-rwxrwxrwx  1 fhem dialout  506599 Apr 22 04:00  cache_LogDB1_2021-04-22_04-00-36


Wie man sieht wird da nichts doppelt geschrieben. Hmm...
Proxmox+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

Christoph Morrison

Niedriges cacheLimit (50) oder cacheOverflowThreshold (500), das dazu führt, dass innerhalb der gleichen Minute zwei Logfiles (oder mehr, je nach Logging-Last) produziert werden?

DS_Starter

Proxmox+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

Frank_Huber

Zitat von: Christoph Morrison am 23 April 2021, 11:05:30
Niedriges cacheLimit (50) oder cacheOverflowThreshold (500), das dazu führt, dass innerhalb der gleichen Minute zwei Logfiles (oder mehr, je nach Logging-Last) produziert werden?
Ich verstehe das so:
- bei spätestens 50 Einträgen wird in die DB geschrieben. also cycle oder max 50.
- Wenn 500 aufgelaufen sind export.

Normalerweise sind auf dieser Instanz im Schnitt ca. 10 Einträge im Cache.