2017-02-22 7 views
1

Ich baue Grafana (4.1.1) Graphen mit einem Prometheus (1.1.2) Backend und versuche Templates zu verwenden, um bestimmte Subsets von Metriken zu aktivieren/deaktivieren ein Armaturenbrett. Ich habe eine Template-Variable namens "$ POP", die meine Orte beschreibt, und eine Template-Variable namens "$ Resolver", die den Typ des verwendeten Resolvers beschreibt ("ungebunden" oder "pdns" sind mögliche String-Ergebnisse).Prometheus & Grafana: Templating und "bool" Modifikator

ich habe diese zwei Metriken wie diese, die sehr gut funktionieren zur Zeit auf die verschiedenen Werte in $ POP Auswahl:

irate(dnsdist_recursor_main_servers_unbound_drops{env="prod",loc=~"$POP"}[1m]) > 0 
irate(dnsdist_recursor_main_servers_pdns_drops{env="prod",loc=~"$POP"}[1m]) > 0 

für den Moment beiseite Einlochen, die stattdessen die Auswahlkriterien eingebettet sind im metrischen Namen von Etiketten (Ich weiß, es ist nicht ideal, aber das ist nur ein Beispiel für größere Problem-Sets, also bitte nicht vorschlagen, wie ich Etiketten verwenden kann) Ich möchte die folgenden Ergebnisse:

Wenn (~ "$ Resolver" == "ungebunden") Ich möchte die erste Metrik (dnsdist_recursor_main_servers_unbound_drops) und wann (~ "$ Resolver" == "pdns") möchte ich die zweite anzeigen (dnsdist_recursor_main_servers_pdns_drops) und wenn beide ausgewählt sind, möchte ich beide metrischen Set-Daten zeigen. Im Grunde hoffe ich, einen On/Off-Sichtbarkeitstrigger für eine Metrik zu haben, die mit meinem $ Resolver-Template-Wert verknüpft ist.

Wie erstelle ich einen booleschen Wert, so dass die Metrik angezeigt oder nicht angezeigt wird, basierend auf der Einstellung des String-Wertes in der Template-Einstellung von $ Resolver? Der Trick hier ist, dass das Auswahlkriterium im metrischen Namen ist, nicht ein Etikett, das mich wirklich stampft. Ich habe "bool" -Modifikatoren ausprobiert, konnte aber nie etwas über String-Gleichheitstests herausfinden. Ich bin mir sicher, dass es nur ein Syntaxproblem ist, aber Beispiele sind dünn vor Ort.

Antwort

0

Was Sie nutzen hier machen können, ist, dass es auf dem Etikett Selektoren keine Einzigartigkeit Einschränkung ist, so können Sie {resolver="$resolver",resolver="unbound"}

+0

Leider tun, ich verstehe nicht ganz diese Methode verstehen. Schlägst du vor, es als Label in die Auswahl aufzunehmen? Wenn dies der Fall ist, funktioniert das nicht wie erwartet (Korrektur für die Groß-/Kleinschreibung): sum (ireate (dnsdist_recursor_main_servers_unbound_drops {env = "prod", loc = ~ "$ POP", resolver = "$ Resolver", resolver = "ungebunden") } [1m])> 0) –