Wie alarmiere ich in Seyren mit Graphite, wenn Transaktionen in den letzten 60 Minuten weniger als x sind?

8

Ich verwende Graphite + Statsd (mit Python-Client), um benutzerdefinierte Metriken von einer Webanwendung zu sammeln: ein Zähler für erfolgreiche Transaktionen. Nehmen wir an, der Zähler ist stats.transactions.count , der auch eine Rate / pro Sekunde-Metrik bei stats.transactions.rate zur Verfügung steht.

Ich habe auch Seyren als Monitor + Alarmsystem eingerichtet und erfolgreich Metriken aus Graphite gezogen. Jetzt Ich möchte eine Warnung in Seyren einrichten, wenn die Anzahl der erfolgreichen Transaktionen in den letzten 60 Minuten weniger als ein bestimmtes Minimum ist .

Welche Metrik- und Graphite-Funktion sollte ich verwenden? Ich habe es mit summarize(metric, '1h') versucht, aber dies gibt mir jede Stunde eine Warnung, wenn Graphite beginnt, die Metrik für die Startstunde zu aggregieren.

Beachten Sie, dass Seyren auch die Parameter from und until von Graphite angeben kann, wenn dies hilft.

    
dukebody 06.11.2014, 09:05
quelle

1 Antwort

14

Ich habe den Code von Seyren zur Unterstützung von from / until beigesteuert, um mit dieser genauen Situation fertig zu werden.

Die folgende Konfiguration sollte eine Warnung ausgeben, wenn die Anzahl für die letzte Stunde unter 50 fällt und ein Fehler, wenn sie unter 25 fällt.

  • Ziel: fassen zusammen (nonNegativeDerivative (stats.transactions.count), "1h", "sum", true)
  • Von: -1h
  • An: [leer]
  • Warnen: 50 (weiches Minimum)
  • Fehler: 25 (hartes Minimum)

Beachten Sie, dass dies jede Minute ausgeführt wird, also ist die "letzte Stunde" eine gleitende Skala. Beachten Sie auch, dass der dritte boolesche Parameter true für die summarize-Funktion angibt, dass der 1h-Bucket an From angepasst werden soll, was bedeutet, dass Sie vor 1 Stunde einen vollen 1-Stunden-Bucket erhalten, anstatt versehentlich einen halben Bucket zu erhalten. (Neuere Versionen von Graphite können dies automatisch tun.)

Ihre Laufleistung kann variieren. Ich hatte Probleme mit diesem Ansatz, wenn der Zähler beim Serverneustart auf 0 zurückgesetzt wird. Aber in meinem Fall verwende ich Dropwizard Metriken + Graphit, nicht Statistik + Graphit, so dass Sie dieses Problem möglicherweise nicht haben.

Bitte lassen Sie mich wissen, ob dieser Ansatz für Sie funktioniert!

    
Jason Duke 14.11.2014, 02:22
quelle

Tags und Links