NEWS
[gelöst] InfluxDB 2: Welcher Wert müllt die DB voll?
-
@iobroker2001 sagte in InfluxDB 2: Welcher Wert müllt die DB voll?:
Dabei protokolliere ich in einem eigenen Bucket namens "iobroker" ca. 40 Datenpunkte, die nur ca. jeweils alle 3 Minuten aufgefrischt werden (so war es jedenfalls gedacht).
Wie kann ich in InfluxDB 2 sehen, welcher Wert wieviel Platz braucht?
Das geht meines Wissens immer noch nicht wirklich gut. Ein QuickHack wäre folgende Abfrage:
from(bucket: "iobroker") |> range(start: -10y) |> filter(fn: (r) => r["_field"] == "value") |> count()
Damit siehst Du relativ schnell die Anzahl der Datensätze, was natürlich nicht 1:1 den Platz widerspiegelt.
Wie kann ich mit einem Script bestimmte Daten nach einer Zeit wieder löschen?
Wenn es immer die gleichen Datenpunkte sind, würde ich eigene Buckets mit einer kürzeren Retentiontime anlegen. Damit werden die Daten nach x Tagen automatisch von der Datenbank entfernt.
-
@marc-berg Vielen Dank, damit konnte ich ermitteln, dass ich 32 Werte schreibe, davon sind die meisten im Tausenderbereich, einige haben 20.000 Werte, der höchste 71.000 Werte.
Grob geschätzt (32 * 20000) = 640.000 Werte - mir ist schleierhaft, wie daraus 7,5 GB werden können.(Zu FHEM-Zeiten mit Filelog-Speicherung habe ich mehrere Jahre mit wesentlich mehr Daten noch nicht einmal annähernd 1 GB geschrieben.)
-
@iobroker2001
ich habe in meinem "Langzeit Bucket" etwas über 700.000 Werte, bei ca. 50MB. Die 7.5GB sind wirklich extrem. -
@iobroker2001
Unter dem /data -Verzeichnis liegen ja die einzelnen Buckets. Was möglich sein KÖNNTE, dass das "Monitoring" Bucket sehr viele Daten enthält.Die ID des Buckets findet sich unter dem /data Verzeichnis wieder. Ggf. lohnt es sich, die Verzeichnisse noch einzeln mit "du" auszuwerten.
-
--- /var/lib/influxdb/engine/data ---------------------------------------------- 7,5 GiB [##########] /9b191b71b9474c02 6,7 MiB [ ] /420ba78195c86dab 76,0 KiB [ ] /6472faa780429f3d
Unter ./data sehe ich 3 Dateien zu (Unter-)Buckets, die aber alle zum Bucket "influx-statistikdaten" gehören - so wie ich das als InfluxdB-Neuling sehe, welche mein Haupt-Bucket für Nicht-IOBroker-Daten ist. Für ioBroker habe ich ja wie beschrieben, ein eigenes Bucket "iobroker". Wenn ich auf "iobroker" klicke, bekomme ich meine Daten angezeigt, aber keine weiteren Bucketinfos.
-
@iobroker2001 sagte in InfluxDB 2: Welcher Wert müllt die DB voll?:
--- /var/lib/influxdb/engine/data ---------------------------------------------- 7,5 GiB [##########] /9b191b71b9474c02 6,7 MiB [ ] /420ba78195c86dab 76,0 KiB [ ] /6472faa780429f3d
Unter ./data sehe ich 3 Dateien zu (Unter-)Buckets, die aber alle zum Bucket "influx-statistikdaten" gehören - so wie ich das als InfluxdB-Neuling sehe, welche mein Haupt-Bucket für Nicht-IOBroker-Daten ist. Für ioBroker habe ich ja wie beschrieben, ein eigenes Bucket "iobroker". Wenn ich auf "iobroker" klicke, bekomme ich meine Daten angezeigt, aber keine weiteren Bucketinfos.
Moin,
geh doch mal auf das Bucket
influx-statistikdaten
und stell das auf 7 tageDie Standardzeit zum Bereinigen der Buckets sind 30 Minuten, wenn Du dann wartest, sollten die Daten langsam verschwinden und nur noch 7 Tage übrig bleiben.
VG
Bernd -
@iobroker2001 sagte in InfluxDB 2: Welcher Wert müllt die DB voll?:
Wenn ich auf "iobroker" klicke, bekomme ich meine Daten angezeigt, aber keine weiteren Bucketinfos.
Moin,
VG
Bernd -
@dp20eic Habe ich jetzt gemacht, jetzt steht Retention auf "7 days", stand vorher auf nie löschen:
Jetzt:
Ich warte jetzt einmal 30 Minuten, noch hat sich nichts getan.
-
@iobroker2001 Mist, ich glaube, jetzt habe ich Mist gebaut, hatte zuerst influx-statistikdaten auf 7 Tage gesetzt, mich dann vertan und auch noch iobroker auf 7 Tage... Hoffe, dass die Änderung zurück noch greift...
Die Änderung zurück auf nicht löschen in iobroker wird nicht aufgefrischt.
Einige Tagen wurden schon gelöscht, dann werde ich mal das Backup wieder einspielen...Aber etwas Positives: das große Bucket ist auf 1 GB geschrumpft, scheint also etwas gebracht zu haben.
Vielen Dank,
Bernd und Marc-Berg -
@iobroker2001 sagte in InfluxDB 2: Welcher Wert müllt die DB voll?:
Einige Tagen wurden schon gelöscht, dann werde ich mal das Backup wieder einspielen...
Moin,
gut, dass Du ein Backup hast, denn das wäre ja nicht so schön, wenn Dir Daten flöten gehen.
Das ist der Grund warum ich mit mehreren
Organisationen
arbeite, so hat jede Organisation nur sein Bucket
Beim Strom sind es zwei Buckets, einmal alles und einmal aggregiert auf einen Tag
Hier nur mal nur zum Testen und für Spielereien, hier fürs Forum
VG
Bernd -
@dp20eic Habe mit BackItUp meine iobroker-InfluxDB-Datensicherung "Backupdatei wiederherstellen" eingespielt, ging ruckzuck, aber Daten vor 7 Tagen sind trotzdem weg!
Bucket iobroker steht auf "Retention: Forever", nur influx-statistikdaten wie geplant auf 7 Tage.
Backup noch einmal eingespielt, während Backup Log:Started restore ... [DEBUG] [influxDB] - Created tmp directory [DEBUG] [influxDB] - Start infuxDB Restore ... [DEBUG] [influxDB] - influxdb.0 is stopped [ERROR] [influxDB] - 2023/04/07 18:23:53 INFO: Restoring bucket "420ba78195c86dab" as "iobroker" Error: failed to restore bucket "iobroker": 422 Unprocessable Entity: bucket with name iobroker already exists [DEBUG] [influxDB] - Try deleting the InfluxDB tmp directory [DEBUG] [influxDB] - InfluxDB tmp directory was successfully deleted [DEBUG] [influxDB] - infuxDB Restore completed successfully [EXIT] influxDB restore done [DEBUG] [influxDB] - influxdb.0 started
-
@iobroker2001
Oh, jetzt war ich mal ein paar Stunden im Garten, und du löschst alle DatenMal 'ne blöde Frage: was ist eigentlich das Bucket "influx-statistikdaten"? Wurde das manuell angelegt?
-
@marc-berg Das ist das 1. Bucket, welches InfluxDB anlegt. Das habe ich dann wohl umbenannt.
Ich hatte damals gehört, dass es besser sei, für die reinen ioBroker-Daten ein eigenes Bucket anzulegen, damit das Backup nicht so groß würde. Das ist das Bucket iobroker. -
@iobroker2001 sagte in InfluxDB 2: Welcher Wert müllt die DB voll?:
@dp20eic Habe mit BackItUp meine iobroker-InfluxDB-Datensicherung "Backupdatei wiederherstellen" eingespielt, ging ruckzuck, aber Daten vor 7 Tagen sind trotzdem weg!
Bucket iobroker steht auf "Retention: Forever", nur influx-statistikdaten wie geplant auf 7 Tage.
Backup noch einmal eingespielt, während Backup Log:Error: failed to restore bucket "iobroker": 422 Unprocessable Entity: bucket with name iobroker already exists
Das Bucket darf vor dem Restore nicht existieren, oder du hakst in der Backitup Instanz folgendes an:
-
@marc-berg Habe den Haken gesetzt, beim Restore kommt identische Meldung, aber auch die gute Bestätigung wie beim 1. Mal, s. auch oben!
[DEBUG] [influxDB] - infuxDB Restore completed successfully [EXIT] influxDB restore done [DEBUG] [influxDB] - influxdb.0 started
Das Restore scheint also funktioniert zu haben, aber nicht den gewünschten Effekt zu haben. Habe Raspi schon neu gestartet. Den Bucket "influx-statistikdaten" versuche ich testweise, wieder auf ewig zu setzen, wird zwar mit OK-Meldung ("was successfully updated") quittiert, aber Anzeige bleibt auf 7 Tage, auch nach Neustart. Grrrr..
Im influx-statistikdaten finde ich Einträge wie boltdb_reads_total, go_memstats...., service_ etc.
-
@iobroker2001
Alles etwas seltsam. Was heißt denn konkret "Das Restore scheint also funktioniert zu haben, aber nicht den gewünschten Effekt zu haben." -
@marc-berg Ich meine damit, BackItUp meint, Restore wäre ok gewesen...;-)
-
@iobroker2001
Sind jetzt gar keine Daten mehr da, oder wie? -
@marc-berg Es sind nur noch die Daten der letzten 7 Tage da.
-
@iobroker2001
Ok, dann schau mal in deine Influxdb-Instanz: