NEWS
influxdb speichert nicht alle Werte kontinuierlich in DB
-
Hallo zusammen,
ich habe eine Problem mit meinem InfluxDB -Adapter. Dieser speichert seit einigen Tagen nicht mehr kontinuierlich alle Werte in meine externe DB. Das Problem betrifft einige Werte, nicht alle und zudem sind die betroffenen Werte auch nicht dauerhaft davon betroffen.
Folgende Meldung bekomme ich dazu im Log:
(5030) Error on writePoint("{"value":true,"time":"2020-11-03T07:50:56.063Z","from":"system.adapter.influxdb.0","q":0,"ack":false}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNR
Mich wundert nur die Unreach-Meldung da diese ja nicht bei allen Werten kommt, sondern nur bei einigen.
Hier ein Screenshot aus meinem Grafana von einem der betroffenen Werte. Hier frage ich die Power und den Status eines Shelly´s ab und der Status zeigt das Verhalten, die Power nicht.Hier die Einstellungen von den jeweiligen Objekten:
Hier noch meine Systemdaten:
Node.js v12.19.0
NPM 6.14.8
JS controller 3.1.6
InfluxDB 1.9.2Kann mir leider dieses Verhalten nicht erklären und benötige bei der Fehlersuche eure Unterstützung.
Mfg
-
@0018 diese Meldungen habe ich auch hin und wieder vor paar Tagen beobachtet, für das ein oder andere Sonoff Gerät. Allerdings sind da Meldungen dabei, wenn man auf die Zeit achtet, Stunden oder auch nen ganzen Tag vergangen.
sozusagen als Beispiel:
ich bekomme heute 3.11.20 9:00Uhr Error on writePoint("{"value":true,"time":"2020-11-02T12:36:26.527Z"
Grund dafür ist mir allerdings auch nicht bekannt und hatte die letzten Tage auch keine Meldungen mehr -
@crunchip Danke für den Hinweis. Bei mir handelt es sich um aktuelle Meldungen die direkt nach dem Adapterstart kommen und auch im fortlaufende Betrieb immer von unterschiedlichen Werten gesetzt werden.
Hier mal ein Auszug aus meinem Log beim Adapterstart:
Ich weis auch leider nicht genau was der Auslöser dafür sein kann. Das Logging lief über Jahre ohne Probleme in die InfluxDB.Das einzige was passiert ist, ist das ich meinen Internetanschluss gewechselt habe und dadurch auch eine neue Fritzbox eingebaut habe. Aber das kann damit ja nicht wirklich zu tun haben oder?
-
@0018 sagte in influxdb speichert nicht alle Werte kontinuierlich in DB:
eine neue Fritzbox eingebaut habe. Aber das kann damit ja nicht wirklich zu tun haben oder?
ich vermute schon, eventuell sind bei dir bestimmte Geräte nicht zuverlässig verbunden (schlechter Empfang/hohe Kanalauslastung)
-
@crunchip Das könnte sein, allerdings verstehe ich die Meldung "EHOSTUNREACH" so, dass der Datenpunkt ja bereits im iob vorhanden ist, es aber dem Adapter nicht möglich ist die DB zu beschreiben. Daher ist die Frage warum schafft er das nur bei manchen Werten nicht?
-
@0018 verstehe ich eigentlich auch so, oder dein System/Platte zu langsam (lesen/schreiben)
-
Problem besteht weiterhin, hat jemand vielleicht noch eine Idee?
-
Hallo,
bei mir kommen ähnliche Meldungen, Systemlast liegt unter 1%
influxdb.0 2020-12-21 12:39:49.100 info (1226) Add point that had error for javascript.0.WasserzählerSumme to buffer again, error-count=1 influxdb.0 2020-12-21 12:39:49.099 warn (1226) Error on writePoint("{"value":6419.09,"time":"2020-12-21T11:39:39.082Z","from":"system.adapter.javascript.0","q":0,"ack":true}): Error: {"error":"timeout"} / "{\"error\":\"timeout\"}\n"
-
-
da habe ich auch "0" stehen...
-
@meister-mopper bei mir steht auch eine 0.
Habe das Problem leider weiterhin. Bin aber auf neue Erkenntnisse gestoßen.
Das Problem besteht seitdem ich einen Internetanbieter sowie die Fritzbox gewechselt habe.
Habe jetzt eine 7590 (vorher 7490) und bin bei der Deutschen Glasfaser.Kann der sporadische Fehler was mit Einstellungen in der FB oder meines Providers zu tun haben?
Die InfluxDB liegt extern auf einem Server.
-
@0018 sagte in influxdb speichert nicht alle Werte kontinuierlich in DB:
Kann der sporadische Fehler was mit Einstellungen in der FB
eher wenn dein Netzwerk "überlastet" ist
-
@crunchip mmmhh kann ich mir schwer vorstellen, vorher mit der 7490, die ja nicht so perfomant ist, lief es ohne Probleme mit der selben Netzwerkaufteilung, IP´s etc.
Kann ich die evtl Überlast irgendwie messen?
-
@0018 war halt nur eine Vermutung, da ich auch schon das ein oder andere mal, massig Meldungen im log hatte. Grad wenn irgendwelche Backup Dateien oder sonst was hin und her geschoben hatte und das nicht mal auf dem Rechner, sondern mit anderen Rechnern.
Kann auch sein, das deine Platte zu langsam ist.
Standard mäßig speichert Influx glaub ich, sowieso 5 min bis Dateien geschrieben werden, von daher hab ich in den Settings, beide Felder leer gelassen, also bei Scheibintervall und Aktion sammeln ohne Eintrag, läuft so am besten bei mir.Direkte oder gepufferte Schreibvorgänge? In der Standardkonfiguration speichert der Adapter jeden einzelnen Datenpunkt direkt in der Datenbank und verwendet den internen Puffer nur, wenn die Datenbank nicht verfügbar ist. Wenn die Datenbank nicht verfügbar war, wird der Puffer im angegebenen Intervall geleert, sodass das definierte Intervall dauern kann, bis die fehlenden Punkte geschrieben sind! Durch Ändern der Konfiguration ist es möglich, neue Datenpunkte bis zu einer definierten Anzahl oder einem definierten maximalen Intervall zwischenzuspeichern, nach dem alle Punkte in der Datenbank gespeichert werden. Dies bietet auch eine bessere Leistung und weniger Systemlast im Vergleich zum direkten Schreiben der Datenpunkte. InfluxDB hat eine Begrenzung der maximalen Größe für Schreibvorgänge, die bei etwa 2 MB liegt. Es sollte sicher sein, bis zu 15.000 Datenpunkte als Puffermaximum zu haben, vielleicht auch 20.000, aber dies hängt stark von der Länge Ihrer Datenpunkt-IDs ab. Beim Beenden des Adapters wird der Puffer beim nächsten Start gespeichert und neu initialisiert, sodass keine Datenpunkte verloren gehen sollten und nach dem nächsten Start geschrieben werden.
-
@0018 sagte in influxdb speichert nicht alle Werte kontinuierlich in DB:
Die InfluxDB liegt extern auf einem Server.
Da könnte der Hund begraben liegen, Deutsch Glasfaser nutzt IPv6 und nicht IPv4
-
@nashra Gibt es da Einstellungen die ich irgendwo anpassen kann?
-
Problem bei IPv6 ist, du kannst zwar Daten zu einem externen Server schicken aber der Server
kommt nicht an dein lokales Netzwerk ran. Hier hilft nur über einen DDNS-Server zu arbeiten
z.B. feste-ip.net -
@nashra Verstehe ich nicht ganz... ich schicke doch nur Daten zum Server, der Server stellt doch keine Rückfragen an meinen IOB oder etwa doch? Dann müsste doch auch meine Firewall in der FritzBox irgendwas offen haben oder?
-
Sorry hatte da was falsch verstanden mit dem externen Server, also Kommando zurück wegen DDNS.
Habe mir nochmal alles durchgelesen und deine Fehlermeldung sagt das der Host nicht erreichbar war
"EHOSTUNREACH". Macht er dies sporadisch oder immer?
Ändere doch mal im influxdb.log folgende Werte:
-
Das Problem kommt eigentlich immer, aber scheinbar bei unterschiedlichen Werten, wenn diese geschrieben werden.
Problem ist das im Log auch nicht zu erkennen ist, um welches Objekt es sich handelt, da ja nur der Wert des Objekts im Log zu lesen ist und nicht der zugehörige Objektname ....Error on writePoint("{"value":0.092,"time":"2021-02-18T10:10:34.524Z","from":"system.adapter.influxdb.0","q":0,"ack":true})
Generell taucht der Fehler aber auch schon beim Starten von Influx auf und das bei allen Objekten während der Startphase. Hier der verkürzte Logauszug:
... ... ... influxdb.0 2021-02-18 11:10:36.035 warn (7212) Error on writePoint("{"value":"backup,vztmpl,iso","time":"2021-02-18T10:10:34.509Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "con influxdb.0 2021-02-18 11:10:36.033 warn (7212) Error on writePoint("{"value":18124,"time":"2021-02-18T10:10:34.501Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNRE influxdb.0 2021-02-18 11:10:36.032 warn (7212) Error on writePoint("{"value":1,"time":"2021-02-18T10:10:34.504Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNREACH influxdb.0 2021-02-18 11:10:36.030 warn (7212) Error on writePoint("{"value":222,"time":"2021-02-18T10:10:34.529Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNREAC influxdb.0 2021-02-18 11:10:36.029 warn (7212) Error on writePoint("{"value":0,"time":"2021-02-18T10:10:34.523Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNREACH influxdb.0 2021-02-18 11:10:36.027 warn (7212) Error on writePoint("{"value":0.175,"time":"2021-02-18T10:10:34.521Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNRE influxdb.0 2021-02-18 11:10:36.021 warn (7212) Error on writePoint("{"value":0.092,"time":"2021-02-18T10:10:34.524Z","from":"system.adapter.influxdb.0","q":0,"ack":true}): Error: connect EHOSTUNREACH xxx.xxx.xxx.xxx:8086 / "connect EHOSTUNRE influxdb.0 2021-02-18 11:10:33.963 info (7212) enabled logging of 0_userdata.0.Stromverbrauch.Teich.Siebfilter.aktuell, Alias=false, 467 points now activated influxdb.0 2021-02-18 11:10:33.962 info (7212) enabled logging of 0_userdata.0.Stromverbrauch.Teich.Siebfilter.Zaehlerstand, Alias=false, 466 points now activated influxdb.0 2021-02-18 11:10:33.961 info (7212) enabled logging of 0_userdata.0.Stromverbrauch.Teich.Siebfilter.gestern, Alias=false, 465 points now activated influxdb.0 2021-02-18 11:10:33.960 info (7212) enabled logging of 0_userdata.0.Stromverbrauch.Teich.Siebfilter.heute, Alias=false, 464 points now activated ... ... ... influxdb.0 2021-02-18 11:10:33.438 info (7212) Connected! influxdb.0 2021-02-18 11:10:33.320 info (7212) Connecting http://xxxxx.xxxx:8086 ... influxdb.0 2021-02-18 11:10:33.317 info (7212) Buffer initialized with data for 2565 points and 1 conflicts from last exit influxdb.0 2021-02-18 11:10:33.226 info (7212) starting. Version 1.9.4 in /opt/iobroker/node_modules/iobroker.influxdb, node: v12.19.0, js-controller: 3.2.12
Mir stellt sich auch die Frage warum EHOSTUNREACH gemeldet wird, obwohl direkt vorher eine Verbindung zur DB mit der "connected" Meldung hergestellt wurde.