NEWS
Influx2 DB - retentiontime ändert sich "von alleine"
-
Moin,
hatte das schon mal jemand oder hat eine Idee, warum das passiert...
Ich habe auf meiner Synology-NAS via Containermanager eine Influx2DB mit mehreren buckets laufen, eines davon heißt "nodered" und hat eine Retention-Time von "Forever". Die Daten werden also niemals gelöscht. Vor knapp 4 Wochen habe ich bemerkt, dass Vorjahresdaten fehlen und habe dann festgestellt, dass die Retention-Time auf "365days" verändert war. Ich bin zunächst davon ausgegangen, dass ich das an irgendeiner Stelle irgendwie selber gemacht habe.
Ich habe dann versucht, die Retention-Time auf der Weboberfläche zu ändern, das war aber nicht möglich. Ich habe die Retention-Time dann via cli auf "Forever" gestellt und die Daten händisch wiederhergestellt....soweit alles gut.
Heute sind wieder die historischen Daten (alles vor dem 28.11.2023) weg, die Retention-Time steht wieder auf 365 Tage - wie von Zauberhand.
Was passiert da?
-
@cocomp Falls Du in dem Influx Adapter eine Gültigkeit einstellst, dann
ändert das die retention time. -
@mickym said in Influx2 DB - retentiontime ändert sich "von alleine":
@cocomp Falls Du in dem Influx Adapter eine Gültigkeit einstellst, dann
ändert das die retention time.Alles klar, im Influx-Adapter stand bei dem Bucket tatsächlich 365 Tage. Bleibt nur die Frage, warum der Adapter das Bucket wochenlang "in Ruhe lässt" und dann plötzlich in Influx die Rentiontime-Time verändert.
Ich habe die automatische Lösung jetzt im Adapter ausgeschaltet.
Danke!
-
Wenn ich im Adapter auf 1460 Tage gehen will, muss ich bestätigen, dass ich eine geringere Vorhaltezeit gewählt habe. Weißt Du, was das Maximum ist?
-
@peterfido gar kein limit einstellen- d.h immer vorhalten
-
@mickym Das würde ich wohl machen, wenn die SSD unendlich Speicherplatz hätte. Da müsste ich erstmal hochrechnen, wieviel die aktuelle Datenbank belegt und dann hochrechnen. 2GB Reserve lasse ich für Updates und Co. Einige Leute entschlacken wohl ältere Werte, um Platz zu sparen.
-
@peterfido Ich bin kein Influx Experte - ich hab mir das nur mal aus Neugierde angeschaut und dann diese Online Kurse mal durchgemacht.
In der Regel lässt man auf der Influx DB eine Routine laufen, die die Daten konsolidiert. Nehmen wir mal an, es wird mehrfach pro Stunde irgendwas geloggt. Dieses Skript erstellt dann in einem neuen Bucket aus den vorhanden Werten - Durchschnitte auf Tagesbasis. Die können dann ggf. ewig bleiben oder Du konsolidierst ebenfalls auf Wochenbasis. Letztlich interessiert Dich nach 1 Jahr nicht mehr ob irgendein Wert um 15 Uhr oder 18 Uhr erzeugt wurde.
Für die erste Datenerfassung zum Beispiel über den influx Adapter, langt dann eine Aufbewahrungszeit von 1-3 Monaten, wenn monatlich dieser Konsolidierungsjob läuft. Die nennen den bei Influx etwas anders, aber so ist das Ganze gedacht.
Wie gesagt, ich bin was Influx betrifft keiner, der Dir Skripte macht, aber schau Dir diese University an - da gibts paar Onlinekurse.
-
@mickym sagte in Influx2 DB - retentiontime ändert sich "von alleine":
Letztlich interessiert Dich nach 1 Jahr nicht mehr ob irgendein Wert um 15 Uhr oder 18 Uhr erzeugt wurde.
darüber liesse sich trefflich debattieren.
Bei Daten die du im Jahresvergleich betrachtest sieht das ggf. anders aus -
@homoran Wie Du das konsolidierst ist ja Dir überlassen, jedenfalls ist das was von dem Influx Team empfohlen wird, regelmäßig zu konsolidieren. Man kann ja auch Maxima oder was weiß ich nehmen - oder nur Daten, wenn die Sonne schien - der Fantasie sind keine Grenzen gesetzt. Von mir aus langt ja auch einmal im Jahr. Nur Du wirst mir nicht erzählen, dass nach 10 Jahren noch 1000ende Werte innerhalb eines Tages brauchst.
-
@mickym Ich habe nun alle paar Wochen das Phänomen, dass die in der InfluxDB im Bucket eingestellte Retentiontime "forever" sich scheinbar von allein auf 365d verändert und ich meine historischen Daten in diesem Bucket verlieren.
In der Instanz zu diesem Bucket im ioBroker habe ich "keine automatische Lösung" eingestellt. Starte ich nun (nachdem sich in der InfluxDB die Retentiontime auf 365d verändert hat) die Instanz neu, wird die 365d auf "forever" geändert.
Liegt die Ursache für diese spontane Änderung der Retentiontime ggfs. beim ioBroker? Wie kann ich der Usache auf die Spur kommen und abstellen?
-
@cocomp Ehrlich gesagt, kann ich dir da nicht viel sagen, da ich die Influx nur mal als Test eingerichtet habe und nicht produktiv nutze. Aber vielleicht gibts ja noch andere Leute, ob die das gleiche Problem haben.
Sorry, dass ich keine qualifizierte Antwort geben kann.
-
@cocomp Ich habe auch keine automatische Löschung im Adapter und in der influxdb selbst im Bucket auf forever stehen.
allerdings muss man dann den freien Speicherplatz im Augebehalten. -
-
@marc-berg Ja, nur bei mir sind sowohl in der InfluxDb als auchbin ioBroker die Einstellung „nie löschen“ hinterlegt. Aber irgendetwas verändert dann die Einstellung in der InfluxDb auf 365d, während im ioBroker die Einstellung immer noch korrekt ist. Ich kann dann in der InfluxDB die Einstellung nicht auf „forever“ anpassen. Starte ich im ioBroker die InfluxDb-Instanz aber neu, wechselt auch in Influx die Einstellung für das Bucket auf „forever“…..
Nur finde ich die Störquelle / den Auslöser nicht.
-
@cocomp sagte in Influx2 DB - retentiontime ändert sich "von alleine":
Ja, nur bei mir sind sowohl in der InfluxDb als auchbin ioBroker die Einstellung „nie löschen“ hinterlegt.
Bitte zeigen (Einstellung in ioBroker). Das wäre sehr ungewöhnlich.
-
-
@cocomp
Es gibt nur diese eine Instanz?Exportiere mal bitte die Einstellungen:
Was steht da hinter "retention"?
-
@marc-berg said in Influx2 DB - retentiontime ändert sich "von alleine":
@cocomp
Es gibt nur diese eine Instanz?Exportiere mal bitte die Einstellungen:
Was steht da hinter "retention"?
Es gibt eine weitere Instanz für ein anderes Bucket mit einer Retention von 30d, die aber keine Probleme macht.
Hier der gewünschte Auszug aus der json:
{ "debounce": 1000, "retention": 0, "dbname": "nodered", "host": "192.168.178.33", "protocol": "http", "path": "", "port": 8086, "user": "", "password": "", "token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "organization": "cohrs", "round": 4, "seriesBufferMax": 0, "seriesBufferFlushInterval": 600, "changesRelogInterval": 0, "changesMinDelta": 0, "reconnectInterval": 10000, "pingInterval": 15000, "requestTimeout": 30000, "validateSSL": true, "dbversion": "2.x", "usetags": false, "pingserver": true, "blockTime": 0, "debounceTime": 0, "disableSkippedValueLogging": false, "enableLogging": false, "customRetentionDuration": 365, "relogLastValueOnStart": true }
-
Okay, passt.
Du hattest eingangs geschrieben, dass die Änderung der Retentiontime über die Weboberfläche nicht funktionierte. Kam da eine Fehlermeldung? Welche Version der InfluxDB hast du?
-
Das ist eine InfluxDB2. Der "Fehler" tritt nur bei einem von insgesamt 6 Buckets auf.
Ich kann weder über die Weboberfläche noch via CLI via "influx bucket update --id bxxxxxxxxxxxxxx -r 0". Es gibt keine Fehlermeldung, die Retention-Time bleibt schlicht auf 365d stehen.
Über den Neustart der Instanz im ioBroker wird die Retention-Time problemlos geändert.Ein Mysterium.....