Hinweis: Schöne Alternative für Charts/Plots mit Grafana und DBLog (MySQL)

Begonnen von Thyraz, 08 Oktober 2017, 15:02:38

Vorheriges Thema - Nächstes Thema

MCh76

Zitat von: ch.eick am 06 November 2020, 10:18:07
Die Definition des Namens in der Legende wird in der neueren Version anders generiert.
Vorher war es immer der Queryname mit dem Spaltenname also "Heizung value" was mich eh gestört hatte :-)
Nun ist es der Spaltenname. Ich habe jetzt "value AS Temperatur" im SQL eingetragen und schon sieht es wieder schön aus.

Die Farben rekonstruiere ich dann aus einem Screenshot.

Hast Du eventuell eine Button Lösung bereits implementiert?

Gruß
   Christian

nein bislang noch nicht. habe aktuell nur liniencharts für wetterverlauf und spritpreise, somit noch weit am anfang ;-)

ch.eick

Zitat von: MCh76 am 06 November 2020, 10:33:45
nein bislang noch nicht. habe aktuell nur liniencharts für wetterverlauf und spritpreise, somit noch weit am anfang ;-)
Na dann stehen wir an der selben Stelle. Auf eine gute Partnerschaft ;-)

Ich habe gestern mit dem Text Plugin einen html button definiert, der öffnet allerdings die Seite in einem neuen tab, was ich nicht möchte.

Aber eventuell kann ich ja mit der aktuellen Version jetzt die Plugins verwenden, die es auf der offiziellen Seite gibt, da lief Version 6... immer in einen Error.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Hallo zusammen,
hier nun der Aufruf. Ich benötige einen einfachen Button, um z.B. einen http Aufruf zum Fhem zu senden.
Dabei soll die Fhem Seite nicht angezeigt werden.

Folgende Plugins habe ich bereits nachinstalliert, bekomme sie aber nicht konfiguriert :-(

Button
Button Panel
Ajax

Text  <<< lässt sich anklicken, jedoch wird dann in einem neuen Tab die fhem Seite aufgerufen


z.B. dieser funktionierende Aufruf

http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off


Sollte es eine bessere Idee geben, dann bitte scheut Euch nicht sie zu Posten :-)

Gruß
     Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Zitat von: ch.eick am 06 November 2020, 15:07:01
Hallo zusammen,
hier nun der Aufruf. Ich benötige einen einfachen Button, um z.B. einen http Aufruf zum Fhem zu senden.
Dabei soll die Fhem Seite nicht angezeigt werden.

Folgende Plugins habe ich bereits nachinstalliert, bekomme sie aber nicht konfiguriert :-(

Button
Button Panel
Ajax

Text  <<< lässt sich anklicken, jedoch wird dann in einem neuen Tab die fhem Seite aufgerufen


z.B. dieser funktionierende Aufruf

http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off


Sollte es eine bessere Idee geben, dann bitte scheut Euch nicht sie zu Posten :-)

Gruß
     Christian
Ich habe in Grafana keine Buttons definiert. Wenn du einen Befehlt per HTTP-Call machst geht Fhem auf. Wenn du das still machen willst dann geht das vielleicht wenn du "&XHR=1" am ende des Links anhängst. Könnte aber sein, dass du dann einen weißen Tab bekommst.

In deinem Beispiel "http://<Ip-Adresse>:<Port>/fhem?cmd=setreading%20Waschmaschine%20Waschmaschine_Button%20off&XHR=1"

ch.eick

Hallo zusammen,
manchmal stockt der Aufbau der Diagramme. Wie kann ich dem auf die Schliche kommen?
Ich vermute es ist Grafana, 22 Abfragen in vier Diagrammen auf einem Dashboard. Ist das viel?

HW RPI4 mit 4G RAM , Fhem, MySQL, Grafana,... in Docker auf einer SSD
DbLog asyncron mit Indix, ohne Event Spalte und aufgeräumt. Ich habe von >4GB auf 1,4 GB reduziert und die Tabelle nach dem Löschen von Einträgen auch wieder optimiert.

Nun kommt es immer wieder zu Hängern, bei denen das Grafana, keine Daten mehr bekommt.
Auch Fhem gibt nur zögerlich Rückmeldung, wohingegen das Debian immer noch flüssig läuft.
Mit attr global 3 und Verbose 5 habe ich schon diverse Devices überprüft. Wenn die Datenbank Abfrage hängt sehe ich nichts verdächtiges im Log oder bei den Events.

Mit apptime max sehe ich, dass DbLog immer on the Top ist.

Durch die Fhem Events habe ich mich ebenfalls optimiert und es wird auch nur mit event-on-change-reading gearbeitet.

Wie könnte ich nun dem Datenbankproblem auf die schliche kommen?
Wenn das Problem auftritt ist die SSD LED munter am blinken...

Gruß
   Christian
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

es kann verschiedene Ursachen haben. Sachen die nicht reproduzierbar sind zu analysieren... schwierig

Wenn die SSD-Leuchte dann auch aktiv ist, hast du in der Zeit viel IO-Aktivität. Kann sein, dass die DB beim Select das verursacht, oder nur Opfer ist, weil ein anderer Process die Resourcen "block" (RAM blockiert und swapped) und die DB dann warten muss.

Ich gehe mal davon aus, dass du die DB im Docker hast da du auch im Fhem-Docker-Thread Fragen zu Docker hattest.

Es könnte helfen, den buffer_pool der Datenbank, zumindest zum Test mal zu erhöhen. Aber dazu muss RAM verfügbar sein.

Wenn es das nächste mal ist, führe die beiden Befehle unten mal aus und poste was rauskommt. Auf dem Raspberry, nicht im Docker. Möchte sehen wieviel Speicher frei ist, und ob man "komische" Prozesse sieht.

free
top


top kannst du mit der Taste "q" beenden. Wenn das Problem länger ist, mache am besten 2 mal top und exportiere.


ch.eick

Okay, ich versuche es zu fangen :-)

Die kurze up time der Container kommt von der gestrigen phpMyAdmin installation.
Normal ohne Probleme:

pi@raspberrypi:/mnt/ssd/home/pi/docker-compose/fhem_2021 $ docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS                  PORTS                                              NAMES
0ad33c6f0656        adejong/grafana-image-renderer-pi:1.0.8-beta2   "dumb-init -- node b..."   24 hours ago        Up 24 hours             0.0.0.0:8081->8081/tcp                             fhem_2021_renderer_1
73af8f40a202        koenkk/zigbee2mqtt:latest                       "docker-entrypoint.s..."   24 hours ago        Up 24 hours                                                                fhem_2021_zigbee2mqtt_1
399323d61f0d        fhem/fhem:latest                                "/entry.sh start"        24 hours ago        Up 24 hours (healthy)                                                      fhem_2021_fhem_1
04e1f3d965c9        jackgruber/phpmyadmin                           "/run.sh phpmyadmin"     24 hours ago        Up 24 hours             0.0.0.0:8082->80/tcp                               fhem_2021_phpMyAdmin_1
c8b6593c2cd6        grafana/grafana:latest                          "/run.sh"                24 hours ago        Up 24 hours             0.0.0.0:4000->3000/tcp                             fhem_2021_grafana_1
c83892cb41a9        hypriot/rpi-mysql                               "/entrypoint.sh mysq..."   24 hours ago        Up 24 hours             0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp   fhem_2021_mysql_1
01f5b15f0973        portainer/portainer:latest                      "/portainer -H unix:..."   3 weeks ago         Up 24 hours             0.0.0.0:9000->9000/tcp                             fhem_2021_portainer_1


free
              total        used        free      shared  buff/cache   available
Mem:        3919812     1289164     1923080      280200      707568     2208632
Swap:        102396       84876       17520


Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,6 us,  3,9 sy,  0,0 ni, 94,2 id,  0,3 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   3827,9 total,   1883,2 free,   1270,5 used,    674,2 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2151,1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                           
21612 fhem      20   0  242640 172888   8216 S   2,3   4,4  99:46.47 perl                                                             
11921 root      20   0    7624   2656   2316 S   1,6   0,1  20:13.40 entry.sh                                                         
9555 pi        20   0   10320   3208   2588 R   1,3   0,1   0:00.64 top                                                               
23196 fhem      20   0  108468  63708   6108 S   1,0   1,6  19:05.52 perl                                                             
  569 root      20   0  200552  86440  76356 S   0,7   2,2  25:46.43 Xorg                                                             
12183 mysql     20   0  342456 172432   2984 S   0,7   4,4   4:12.67 mysqld                                                           
12682 root      20   0  157424  39980   6884 S   0,7   1,0   3:12.02 node                                                             
27903 pi        20   0   89740  21576  13044 S   0,7   0,6   1:12.66 lxterminal                                                       
  470 root      20   0   32412   2588   1916 S   0,3   0,1  19:33.84 nmbd                                                             
12123 root      20   0   16380   9588    360 S   0,3   0,2   0:47.61 supervisord                                                       
12225 grafana   20   0  839424  25032  10760 S   0,3   0,6   2:21.82 grafana-server
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Zitat von: ch.eick am 03 Dezember 2020, 12:29:58
Okay, ich versuche es zu fangen :-)

Die kurze up time der Container kommt von der gestrigen phpMyAdmin installation.
Normal ohne Probleme:

pi@raspberrypi:/mnt/ssd/home/pi/docker-compose/fhem_2021 $ docker ps
CONTAINER ID        IMAGE                                           COMMAND                  CREATED             STATUS                  PORTS                                              NAMES
0ad33c6f0656        adejong/grafana-image-renderer-pi:1.0.8-beta2   "dumb-init -- node b..."   24 hours ago        Up 24 hours             0.0.0.0:8081->8081/tcp                             fhem_2021_renderer_1
73af8f40a202        koenkk/zigbee2mqtt:latest                       "docker-entrypoint.s..."   24 hours ago        Up 24 hours                                                                fhem_2021_zigbee2mqtt_1
399323d61f0d        fhem/fhem:latest                                "/entry.sh start"        24 hours ago        Up 24 hours (healthy)                                                      fhem_2021_fhem_1
04e1f3d965c9        jackgruber/phpmyadmin                           "/run.sh phpmyadmin"     24 hours ago        Up 24 hours             0.0.0.0:8082->80/tcp                               fhem_2021_phpMyAdmin_1
c8b6593c2cd6        grafana/grafana:latest                          "/run.sh"                24 hours ago        Up 24 hours             0.0.0.0:4000->3000/tcp                             fhem_2021_grafana_1
c83892cb41a9        hypriot/rpi-mysql                               "/entrypoint.sh mysq..."   24 hours ago        Up 24 hours             0.0.0.0:3306->3306/tcp, 0.0.0.0:33060->33060/tcp   fhem_2021_mysql_1
01f5b15f0973        portainer/portainer:latest                      "/portainer -H unix:..."   3 weeks ago         Up 24 hours             0.0.0.0:9000->9000/tcp                             fhem_2021_portainer_1


free
              total        used        free      shared  buff/cache   available
Mem:        3919812     1289164     1923080      280200      707568     2208632
Swap:        102396       84876       17520


Tasks: 225 total,   1 running, 224 sleeping,   0 stopped,   0 zombie
%Cpu(s):  1,6 us,  3,9 sy,  0,0 ni, 94,2 id,  0,3 wa,  0,0 hi,  0,0 si,  0,0 st
MiB Mem :   3827,9 total,   1883,2 free,   1270,5 used,    674,2 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2151,1 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                           
21612 fhem      20   0  242640 172888   8216 S   2,3   4,4  99:46.47 perl                                                             
11921 root      20   0    7624   2656   2316 S   1,6   0,1  20:13.40 entry.sh                                                         
9555 pi        20   0   10320   3208   2588 R   1,3   0,1   0:00.64 top                                                               
23196 fhem      20   0  108468  63708   6108 S   1,0   1,6  19:05.52 perl                                                             
  569 root      20   0  200552  86440  76356 S   0,7   2,2  25:46.43 Xorg                                                             
12183 mysql     20   0  342456 172432   2984 S   0,7   4,4   4:12.67 mysqld                                                           
12682 root      20   0  157424  39980   6884 S   0,7   1,0   3:12.02 node                                                             
27903 pi        20   0   89740  21576  13044 S   0,7   0,6   1:12.66 lxterminal                                                       
  470 root      20   0   32412   2588   1916 S   0,3   0,1  19:33.84 nmbd                                                             
12123 root      20   0   16380   9588    360 S   0,3   0,2   0:47.61 supervisord                                                       
12225 grafana   20   0  839424  25032  10760 S   0,3   0,6   2:21.82 grafana-server


System ist erstmal nicht überlastet. Warum nutzt du den über 2 Jahre alten rpi-mysql Container? Der war damals für armv6 gebaut worden, dein RPi4 müsste aber mit dem normalen Image von Mariadb laufen (ist ein Fork von Mysql). .... https://hub.docker.com/_/mariadb

Daten kannst ja vom mysql behalten.

ch.eick

Zitat von: kadettilac89 am 03 Dezember 2020, 13:26:40
System ist erstmal nicht überlastet. Warum nutzt du den über 2 Jahre alten rpi-mysql Container? Der war damals für armv6 gebaut worden, dein RPi4 müsste aber mit dem normalen Image von Mariadb laufen (ist ein Fork von Mysql). .... https://hub.docker.com/_/mariadb

Daten kannst ja vom mysql behalten.
Damals war das der Container, den ich für MySQL und RPI gefunden hatte, bis ich dann im Log gesehen hatte, dass da auch was von MarieDB steht. Kann ich jetzt nach einer Sicherung das Image einfach löschen und mit einem neuen in Docker wieder starten? Da bin ich noch nicht so mutig:-)
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Zitat von: ch.eick am 03 Dezember 2020, 13:33:31
Damals war das der Container, den ich für MySQL und RPI gefunden hatte, bis ich dann im Log gesehen hatte, dass da auch was von MarieDB steht. Kann ich jetzt nach einer Sicherung das Image einfach löschen und mit einem neuen in Docker wieder starten? Da bin ich noch nicht so mutig:-)

Hast du Daten drin die du brauchst, oder ist es aktuell eine Spielwiese?

Du kannst mit DBRep ein Backup der Datenbank (fhem) machen. Wenn du noch was anderes in MySQL hast musst du das natürlich separat behanden. Alternativ ein Dump der history tabelle auf OS-level, Befehl heißt mysqldump ... am besten die Befehle googlen ... da du ein Backup hast, kannst aber immer noch später was extrahieren wenn du was übersiehst.

Würde dann den MySQL-Teil aus Docker-Compse rauslöschen und das Image / Container löschen. Wie geasgt, ich gehe davon aus, empfehle, ein Backup zu machen. Dann kommst auch später an deine Daten wenn alles läuft.

ch.eick

Zitat von: kadettilac89 am 03 Dezember 2020, 13:38:24
Hast du Daten drin die du brauchst, oder ist es aktuell eine Spielwiese?

Du kannst mit DBRep ein Backup der Datenbank (fhem) machen. Wenn du noch was anderes in MySQL hast musst du das natürlich separat behanden. Alternativ ein Dump der history tabelle auf OS-level, Befehl heißt mysqldump ... am besten die Befehle googlen ... da du ein Backup hast, kannst aber immer noch später was extrahieren wenn du was übersiehst.

Würde dann den MySQL-Teil aus Docker-Compse rauslöschen und das Image / Container löschen. Wie geasgt, ich gehe davon aus, empfehle, ein Backup zu machen. Dann kommst auch später an deine Daten wenn alles läuft.
Einen Dump mache ich natürlich vorher.
Die Volumes sicher ich dann auch nochmal wenn MySQL runter gefahren ist und übergebe die dann einfach dem neuen Container.
Die neue Version sollte das ja lesen können :-)

    volumes:
        - ./mysql/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
        - ./mysql/data:/var/lib/mysql
        - ./mysql/log:/var/log
        - ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

ch.eick

Ich habe mal ein neues top, da es gerade stockt.

top - 15:22:16 up 3 days, 23:13,  2 users,  load average: 23,83, 12,78, 5,33
Tasks: 227 total,   1 running, 226 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8,8 us,  6,3 sy,  0,0 ni,  0,0 id, 84,7 wa,  0,0 hi,  0,2 si,  0,0 st
MiB Mem :   3827,9 total,   1485,2 free,   1271,1 used,   1071,6 buff/cache
MiB Swap:    100,0 total,     17,1 free,     82,9 used.   2206,0 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                   
  569 root      20   0  200548  85776  75612 S   7,6   2,2  27:35.83 Xorg                                                       
11921 root      20   0    7624   2656   2316 S   1,7   0,1  22:44.86 entry.sh                                                   
23196 fhem      20   0  108468  63704   6104 S   1,7   1,6  21:21.62 perl                                                       
  211 root      -2   0       0      0      0 S   1,0   0,0   2:50.24 v3d_render                                                 
21612 fhem      20   0  242332 172716   8224 S   1,0   4,4 109:40.64 perl                                                       
27903 pi        20   0   89292  21876  13204 S   1,0   0,6   1:40.27 lxterminal                                                 
  210 root      -2   0       0      0      0 S   0,7   0,0   2:43.44 v3d_bin                                                   
12225 grafana   20   0  839424  28632  12160 S   0,7   0,7   2:38.86 grafana-server                                             
   10 root      20   0       0      0      0 I   0,3   0,0   6:18.56 rcu_sched                                                 
  398 root      20   0   27656    884    784 S   0,3   0,0   1:22.53 rngd                                                       
1187 pi        20   0  152668  17656  12016 S   0,3   0,5   2:40.69 lxpanel                                                   
1193 pi        20   0   96012  16640  10688 S   0,3   0,4   0:10.55 pcmanfm                                                   
12183 mysql     20   0  343532 172396   2860 S   0,3   4,4   4:46.61 mysqld                                                     
19282 pi        20   0   10320   3108   2492 R   0,3   0,1   1:36.56 top                                             
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick

kadettilac89

Zitat von: ch.eick am 03 Dezember 2020, 15:24:18

%Cpu(s):  8,8 us,  6,3 sy,  0,0 ni,  0,0 id, 84,7 wa,  0,0 hi,  0,2 si,  0,0 st


Der Wert 84,7 wa .. da wartet das System auf I/O bzw. schreibt / liest von Festplatte.


Zitat von: ch.eick am 03 Dezember 2020, 15:18:27
Einen Dump mache ich natürlich vorher.
Die Volumes sicher ich dann auch nochmal wenn MySQL runter gefahren ist und übergebe die dann einfach dem neuen Container.
Die neue Version sollte das ja lesen können :-)
Darauf würde ich mich nicht verlassen. Mariadb ist eine neuere Version, und auch ein anderes Produkt. Mach am besten wirklich alles neu bzw. neues Verzeichnis. Wenn du schon testest, dann schließe alle möglichen Fehlerursachen aus.

kadettilac89

nachtrag ... zeige mal die Datei, was ist da drin?

- ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf

ch.eick

Zitat von: kadettilac89 am 03 Dezember 2020, 15:51:20
nachtrag ... zeige mal die Datei, was ist da drin?

- ./mysql/mycustom.cnf:/etc/mysql/conf.d/custom.cnf
Das ist leer, wahrscheinlich braucht man das, wenn man etwas umkonfigurieren möchte.
RPI4; Docker; CUNX; Eltako FSB61NP; SamsungTV H-Serie; Sonos; Vallox; Luxtronik; 3x FB7490; Stromzähler mit DvLIR; wunderground; Plenticore 10 mit BYD; EM410; SMAEM; Modbus TCP
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/ch.eick