Forum: PC-Programmierung InfluxDB - mit Retention keine Daten mehr


von Matthias S. (da_user)


Angehängte Dateien:

Lesenswert?

Tag,
ich habe eine InfluxDB 1.8 am laufen und würde gerne mal die Retention 
ausprobieren. Insbesondere müssen ja laufende Tageswerte nicht bis in 
alle Ewigkeit aufgehoben werden, da würde ja der Tagesendwert reichen.
Also erstmal eine Retention "3D" erstellt, in den NodeRed InfluxDB Node 
die Retention eingetragen, Deployed und... ab da bleibt die Grafana-Visu 
leer.

Versuchsweise habe ich noch eine zweite Policy erstellt (Screenshot), 
kann ja sein dass er die mit einer Zahl am Anfang nicht will - gleicher 
Effekt.

Wenn ich in den Node eine nicht existierende Policy eintrage, meldet 
dieser mir einen "Internal Server Error". Bei leerem Feld (=autogen) 
zeigt mir Grafana die Datenpunkte wieder an.

Zum konkretisieren der Grafana-Visu: Daten die mit leerem 
PolicyFeld/Policy "autogen" geschrieben werden, zeigt die Grafana Visu 
an. Daten die mit "3D" oder "three_days" in der DB landen sollten(!), 
werden nicht angezeigt.

Hat jemand sachdienliche Hinweise, was ich da falsch mache?

VG
da_user

von Εrnst B. (ernst)


Lesenswert?

So aus dem Stegreif (ist länger her):
Die Retention Policy definiert nur das Löschen der Daten.
Um die Tages-Endwerte (und ggfs. Durchschnitte, Minima, Maxima) zu 
speichern, und für die Auswertung zur Verfügung zu haben, brauchst du 
ein zweites Bucket ohne diese Retention policy, und einen Task der 
regelmäßig die Daten aggregiert (downsample) und in den Langzeit-Bucket 
schreibt.

ganz grob in der Art
1
from(bucket: "minuten-daten")
2
 |> range(start: -1d) // hier evtl. noch align auf Vortag Mitternacht, Zeitzone beachten!
3
 |> aggregateWindow(fn: mean, every: 1d) // oder latest, min, max, etc.
4
  // oder auch verschiedene aggregates gleichzeitig, 
5
  // dann musst du das aggregateWindow mit zweimal "window()" von Hand machen.
6
 |> to(bucket: "tages-daten")

dein Grafana muss dann natürlich je nach Anzeige-Zeitraum aus dem einen 
oder anderen Bucket lesen.

Vorsicht: Influx ändert alle Nase lang ihre Query-Language. Bin nicht 
sicher für welche Version mein Beispiel passt.

von Matthias S. (da_user)


Lesenswert?

Danke für die Hilfe, aber leider "Thema verfehlt" ;-)

Εrnst B. schrieb:
> Die Retention Policy definiert nur das Löschen der Daten.

Das ist mir bekannt, und genau das will ich als Erstes umsetzen. Den 
letzten Tageswert soll mir dann erstmal NodeRed mit der Policy "autogen" 
schreiben und ich kann in der Test-DB das mit dem "zweiten Bucket" 
testen. (Edit: vielleicht, irgendwann mal, genauso wie ich irgendwann 
mal auf Influx 2.x umsteigen will,...)
Apropos "Bucket":

Matthias S. schrieb:
> InfluxDB 1.8

Nix Buckets, nix Flux sondern InfluxQL.

Aber wie gesagt: trotzdem natürlich danke für den Hilfsversuch.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.