NEWS
Grafana filter measurement alles mit X aber Y ausschließen
-
Hallo.
Im Grafana habe ich folgenden Filter. Er nimmt alle Werte mit "Strom-SH-GESAMT".
Ich würde aber gerne einen Wert explizit ausschließen, geht das ?|> filter(fn: (r) => r["_measurement"] =~ /Strom-SH-GESAMT/)
Ich dachte vielleicht mit einem drop, aber das geht irgendwie nicht
|> drop(columns: ["Heizung"])
-
@bitwicht sagte in Grafana filter measurement alles mit X aber Y ausschließen:
Ich dachte vielleicht mit einem drop, aber das geht irgendwie nicht
|> drop(columns: ["Heizung"])Ich nehme an, mit "Wert" meinst du "Measurement".
|> filter(fn: (r) => r["_measurement"] =~ /Strom-SH-GESAMT/ and r["_measurement"] != "MeasurementZumAusschließen")
-
@marc-berg sagte in Grafana filter measurement alles mit X aber Y ausschließen:
|> filter(fn: (r) => r["_measurement"] =~ /Strom-SH-GESAMT/ and r["_measurement"] != "MeasurementZumAusschließen")
Gibt es wirklich denkbare Fälle, wo man sowas brauchen könnte?
Der Filter filtert doch sowieso nur was er filtern soll. Warum sollte man ihm noch sagen, was er nicht filtern soll?
Oder habe ich da was falsch verstanden? -
@rewenode sagte in Grafana filter measurement alles mit X aber Y ausschließen:
Oder habe ich da was falsch verstanden?
Ich glaube ja. Wenn du 100 Measurements hast, die im Namen "Strom-SH-GESAMT" haben, kannst du diese mit dem ersten Teil selektieren. Wenn du aber eins von den hundert nicht haben willst, musst du es wieder einschränken, wenn du nicht 99 einzeln benennen willst.
-
@marc-berg sagte in Grafana filter measurement alles mit X aber Y ausschließen:
die im Namen "Strom-SH-GESAMT"
=~ /Strom-SH-GESAMT/
Hier ist ja der Filter als regex formuliert.
Da würde ich sicher den regex so formulieren, dass es exact den String filtert.
(casesensitive, wortgrenze etc)
Steh da immer noch auf dem Schlauch. -
@rewenode sagte in Grafana filter measurement alles mit X aber Y ausschließen:
Steh da immer noch auf dem Schlauch.
Bin mir nicht ganz sicher, aber vielleicht übersiehst du, das bei Flux der regEx Ausdruck durch "/" eingeschlossen werden muss?
Ansonsten kann man den RegEx sicher auch besser formulieren, sodass man ohne den einzelnen Ausschluss (!=) auskommt.
-
@marc-berg sagte in Grafana filter measurement alles mit X aber Y ausschließen:
Bin mir nicht ganz sicher, aber vielleicht übersiehst du, das bei Flux der regEx Ausdruck durch "/" eingeschlossen werden muss?
Ja, ist so. Deswegen hat mich der != Teil auch irritiert.
r["_measurement"] =~ /(node-red\.0\.fems\._sum.*?Energy\b)/)
Hatte gestern mal sowas verwendet. Sind zwar keine 100 States die ich da filter, aber dennoch eine echte Erleichterung.
Problematisch ist da wirklich die genaue Formulierung. Hab ne weile gebraucht, bis ich gemerkt habe, das ich auch dp's mit ..Energy0 drin hatte.
Da ist es manchmal wirklich sicherer Strings mit OR zu verwenden. -
@marc-berg said in Grafana filter measurement alles mit X aber Y ausschließen:
Ich glaube ja. Wenn du 100 Measurements hast, die im Namen "Strom-SH-GESAMT" haben, kannst du diese mit dem ersten Teil selektieren. Wenn du aber eins von den hundert nicht haben willst, musst du es wieder einschränken, wenn du nicht 99 einzeln benennen willst.
Danke Mark.
Genau das war auch mein Problem. Ich wollte nur 99 einzeln eingeben sondern einfach alle und einen ausschließen.Noch eine andere Frage die ich in der Anleitung nicht finde.
|> range(start: -1mo)
Was genau bedeutet -1mo?
Der aktuelle Monat oder 30 Tage zurück ?Wenn ich den laufenden Monat oder Jahr haben möchte, kann ich dann -1mo arbeiten oder muss ich mit import "date" arbeiten?
-
@bitwicht sagte in Grafana filter measurement alles mit X aber Y ausschließen:
Was genau bedeutet -1mo?
Der aktuelle Monat oder 30 Tage zurück ?Dabei geht es um Kalendermonate. Am 08.02. wird also der 08.01. ermittelt und am 29.03., 30.03. und 31.03. der 28.02. (oder 29.02.) und so weiter. Wenn du ganze Monate (oder Jahre) haben willst, dann musst du mit date.truncate(...) arbeiten. Das sorgt dann auch dafür, dass der Zeitraum um 0.00 Uhr (UTC) startet, bzw. 0:00 Uhr lokale Zeit, falls die Timezone angegeben wird.
-
-
@bitwicht sagte in Grafana filter measurement alles mit X aber Y ausschließen:
wäre das dann so korrekt:
Wenn du die Abfrage am 01.02.2024 0:00Uhr starten willst: Ja.
-
Falls es jemand benötigt, import "date" muss noch hin:
import "date" from(bucket: "example-bucket") |> range(start: date.truncate(t: now(), unit: 1mo))