Grafana Influxdb letzter Datenpunkt (Wert und Zeitpunkt) anzeigen?

Hallo zusammen,
ist es möglich, den letzten Wert und den dazugehörigen Zeitpunkt anzeigen zu lassen?
Mit SingleStat schaffe ich den letzten Wert, aber den passenden Zeitpunkt bekomme ich nicht hin.

Irgendwer eine Idee wie das geht?

Danke,sG Martin

  • als Metrik im single stat nimmst Du diejenige, deren letzter Meßzeitpunkt angezeigt werden soll (schon klar ;) )

  • als Funktion verwendest Du ausschließlich field() , also z.B. field(bme_aussen)

  • bei den Optionen des betreffenden single stat -Panels wählst Du time of last point und zuletzt noch ein passendes Format, also einen Datumsstring bei unit (siehe Bild)

    image

1 Like

Cool Danke.
Da kommt gleich die nächste Frage nach :slight_smile:
Ich habe 9 Völker, das Gewicht hole ich mir so:
image

Jetzt die Frage, gibts eine einfache Möglichkeit für so eine Darstellung :slight_smile:
Volk_1 2020:05:11 16:47 34kg
Volk_2 xxxxxxxx
Volk_3
etc.

jeweils immer das letzte Gewicht in einer Tabelle?

Geschafft, hier die Lösung:

SELECT LAST("wert") FROM gewicht GROUP BY "volk"

4 Likes

Könnte man darüber auch alerts verschicken? Die aktuelle Zeit minus den letzen Datenpunkt und wenn das mehr als 2 Tage sind eine Mail, mit dem Sensorknoten passt was nicht?

JA das wäre eine super Möglichkeit! Aber (noch) keine Ahnung wie das geht. Die einzelnen Waage laufen soweit relativ stabil, die meisten Probleme hat mir die Internetverbindung gemacht. Aber das sollte auch gelöst sein. Aktuell laufen alle Waagen (bis auf 5, die ist offline) seit Tagen stabil durch.
Wichtig, bevor die Schwarmsaison so richtig losgeht :wink:

Vorschlag:
SELECT volk, time FROM gewicht WHERE DATE(time) < DATE(‘now’, ‘-1 day’) GROUP BY volk;

Hallo HeiRob, willkommen im Forum!

Ich hab deinen Vorschlag probiert,
leider kommt folgende Meldung : ERR: invalid function call in condition: date(time)

Ich verwende Influx Version v1.7.10

sG
Martin

Hallo Martin (zmaier),

versuch es mal mit diesen beiden:

SELECT volk INTO temp1 FROM gewicht WHERE time > now()-48h
SELECT volk FROM (SELECT * FROM temp1 GROUP BY *) WHERE time < now()-24h

Achtung!! Wenn temp1 bereits verwendet wird, dann einen anderen Namen verwenden.
Es sollten die Völker angezeigt werden, die keine Meldung vor 24 Stunden übertragen haben.

Gruß
Heiner

Hallo Heiner,
wau - Befehle gibts…

Leider kommt da nicht das richtige raus
image
Volk 5 und 8 senden seit tagen nichts mehr.

Hallo Martin,

kannst du mir die Ausgabe zusenden, von:

precision rfc3339
SELECT * FROM gewicht ORDER BY time DESC

Bitte als Text.

Hallo,

ich hab dir die Daten der letzten Woche ins Txt File gespeichert.
Ein Hinweis noch.
Volk 1,2,3,4 und Volk 5,6,7,8,9 liefern unterschiedliche Werte, also die letzten schicken auch noch roh-werte etc. Aber “wert” ist immer dabei und um den gehts ja eigentlich.

Volk5 war die letzten Monate nicht online, also da findest du nichts im File.

Danke,
sg
MartinOutput.txt (4,8 MB)

1 Like

Hallo Martin,

mit Influxdb-SQL ist die Aufgabe meiner Meinung nicht lösbar. Vielleicht leistet das einer der Tools im Umfeld.

Gruß
Heiner

Ok schade, auf alle Fälle vielen Dank für deine Hilfe!

Du meinst InfluxQL , das sieht nur aus wie SQL. ;)

Perfekter Moment, in FLUX einzusteigen ?!

https://community.hiveeyes.org/tag/flux

Grafana hat im Alert-Tab bereits – unabhängig von der konkreten Auswertung, etwa “ist x größer als y” – genau für die Umstände

  • Was ist, wenn es über $Zeitraum garkeine Daten gibt?
  • Was ist, wenn ich gar nicht erst den Query ausführen kann, also die Datenbank nicht erreichbar ist?

Funktionen eingebaut, die nennen sich dort:

  • If no data or all values are null
  • If execution error or timeout

Da lässt sich denn per Dropdown auswählen, ob das als Alarm/Ok/Last-State behandelt werden soll.

2 Likes