Implementierung von Freigabemarkierungen in Graphit
Von Allen Fung, Senior Software Engineer (Senior)
Auf ShareThis verwenden wir Graphite für die Anwendungsüberwachung. Hier ist ein typischer Graph von Graphite.
Dies zeigt die "Ereignisse pro Minute", die eine Anwendung im Laufe der Zeit verbraucht hat. Wie Sie sehen können, wurden am Montagnachmittag für einige Stunden keine Aufzeichnungen verbraucht. Durch die Kombination von Freigabemarkern mit der obigen Grafik können wir sehen, dass der Verbrauch aufgrund einer schlechten Freigabe gestoppt wurde. So sieht das hier aus.
Bei der Implementierung des Release-Markers haben wir festgestellt, dass der Name des Markers kein beliebiger Wert sein kann. Stattdessen muss sie mit ".count" ergänzt werden. Dies liegt daran, dass der xFilesFactor für ".count$" standardmäßig auf Null gesetzt ist, nicht aber für andere Muster. Wenn eine Kennzahl einen xFilesFactor ungleich Null hat, sind seine Werte garantiert nur für die letzten 24 Stunden sichtbar. Der xFilesFactor kann in der folgenden Datei konfiguriert werden.
/opt/graphite/conf/storage-aggregation.conf.
Hier ist der eigentliche Befehl, den wir bei der automatischen Bereitstellung verwendet haben, um die Release-Markierung zu generieren.
echo release_marker.$APPLICATION.$HOST.count 1 `Datum +%s` | nc -w 2 graphite.ops.sharethis.com 2003
Der obige Befehl setzt den Wert der Metrik auf die Nummer eins zur angegebenen Zeit. Wenn wir versuchen, nur die Metrik anzuzeigen, werden wir nichts sehen, weil ihre Werte zu klein sind. Um die Metrik sichtbar zu machen, müssen wir sie an die Funktion drawAsInfinite übergeben. Dadurch wird jeder Datenpunkt ungleich Null der Metrik als vertikale Linie angezeigt.