2017-11-20 2 views
0

Ich glaube, ich habe alles richtig gemacht, als ich meine Graphit-DB erstellt habe. Grafana kann die Daten sehen, aber ich werde nicht alle Felder auswählen, wenn ich "Abfrage hinzufügen" versuche.InfluxDB Grafana-Vorlagen: Ich kann nicht alle Felder in "Abfrage hinzufügen" auswählen

Ausgabe von meinem Server zeigen, dass die DB arbeitet:

show measurements 
name: measurements 

name 
PORT 

select * from "PORT" 
name: PORT 
time    CardNo Counter   Nodename PortNo value 
----    ------ -------   -------- ------ ----- 
1511214407000000000 18  bcast_inpackets ALPRGAGQPN2 1  500 

Allerdings, wenn ich versuche, "Add Query" in Grafana, ich PORT in "FROM" sehen (das ist, was ich will) , aber wenn ich im Bereich "WHERE" versuche, meine Auswahl mit CardNo, Counter usw. einzuschränken, scheint sie sich zufällig zu verhalten. Wenn ich CardNo zuerst auswähle, kann ich 18 wählen (siehe Bild unten), aber dann auf "+" klicken, um ein anderes Kriterium hinzuzufügen, zeigt nicht die Option für "PortNo" an (alles, was ich bekomme, ist ein leeres Dialogfeld). Ich kann den Feldwert manuell eingeben (z. B. PortNo), aber andere Benutzer zeichnen Diagramme und kennen das zugrundeliegende Schema nicht unbedingt. Wenn ich zuerst Nodename auswähle, kann ich CardNo (seltsam) auswählen. Ich möchte es so, dass der Endbenutzer ALLE Felder angeben kann (in diesem Fall CardNo, Counter, Nodename und PortNo).

enter image description here

Meine Graphitvorlage ist dies:

"[[graphite]] 
# Determines whether the graphite endpoint is enabled. 
    enabled = true 
    database = "graphite" 
# retention-policy = "" 
    bind-address = ":2003" 
    protocol = "tcp" 
# consistency-level = "one" 
    templates = [ "ASR.PORT.* .measurement.Nodename.CardNo.PortNo.Counter" 
    ] 

und die Daten, die ich zu InfluxDB füttere mein Setup zu testen, sind:

echo "ASR.PORT.ALPRGAGQPN2.18.1.bcast_inpackets 500 `date +%s`" | nc localhost 2003 

Antwort

0

Erstens Vorlage besser als geschrieben wird:

"ASR.PORT.* .measurement.Nodename.CardNo.PortNo.field"

Das macht bcast_inpackets und jeden anderen Wert nach PortNo in ein Feld mit Daten. Dies reduziert die Kardinalität von Serien, was die Leistung und Skalierbarkeit verbessert, indem alle Zähler in mehrere Felder der gleichen Serie im Gegensatz zu separaten Serien mit eindeutigen Markierungen mit ihren eigenen value Feldern kombiniert werden.

Grafana's Influx Query Builder filtert Tag-Werte für den Wert der bereits ausgewählten Tags. Mit anderen Worten, wenn Sie PortNo=1 auswählen und versuchen, ein anderes Tag auszuwählen, werden nur die Tasten angezeigt, wobei PortNo = 1 angezeigt wird.

Wenn Sie auf Abfragen im Browser Grafana läuft, sehen Sie etwas wie show tag keys from PORT where PortNo='1', wenn PortNo=1 bereits ausgewählt ist und andere Abfragen für andere Tags.

Aus diesem Grund sehen Sie möglicherweise keine anderen Tags und warum die angezeigten Tags von den bereits ausgewählten Tags abhängen. Dies ist beabsichtigt, wenn Sie etwas anderes möchten, müssen Sie das Schema anpassen, indem Sie beispielsweise PortNo und in Felder anstelle von Tags eingeben.

Sie könnten auch interessiert sein an InfluxGraph die InfluxDB über Graphite API abfragen kann und auch die gleiche Template-Konfiguration wie InfluxDB unterstützt.

+0

Ich mache Fortschritte, aber noch nicht ganz da. Was ich sehe, ist die resultierende Abfrage, wenn ein Klick auf das "+" nicht funktioniert (dh SHOW TAG KEYS VON "PORT" WHERE "CardNo" = 1). Wenn die '1' in Anführungszeichen steht, dann sehe ich alle anderen Felder. Die Frage ist nun, wie entweder Grafana alle Werte in Anführungszeichen setzen kann, wenn SELECT ausgeführt wird, oder ob neue Daten von influxdb eingegeben werden. – musca999

+0

Kann das wahrscheinlich als ein Grafana-Problem melden. Eine Vorlage, bei der Port und Karte keine Felder sind, klingt so, als ob sie für Sie funktionieren würden, zB '.measurement.Nodename.field * ' – danny

+0

Vielen Dank für Ihren Vorschlag, aber es wird nicht funktionieren, weil es die Auswahl auf die SELECT-Anweisung herunterdrückt und ich hunderte Entscheidungen treffen werde, was es unhandlich macht (zB könnte ich 20 Karten haben) mit je 20 Ports -> 400 Möglichkeiten). Ich habe Grafana über mein Problem berichtet, aber noch nichts gehört. Ich neige jetzt dazu, anstelle von Graphit die native influxdb-Syntax zu verwenden, wenn ich diese Werte typisieren kann. Ich habe einen Workaround gefunden, der nicht besonders schön ist, aber es funktioniert, indem ich CardNo (oder irgendeinem anderen numerischen Feld) ein ":" voranstelle. Es "trickst" Grafana, um es als eine Schnur zu behandeln. – musca999

Verwandte Themen