Bucky ist eine kleine Web-Server für die Erfassung und die Übersetzung Metriken für Graphite & nbsp;. Er kann aktuelle sammeln metrischen Daten von collectd Dämonen und von StatsD Kunden.
Installation
Sie können mit easy_install oder pip wie für normale Vorgehensweise installieren:
& Nbsp; easy_install Bucky
# Oder
pip Bucky installieren
Nach der Installation können Sie Bucky wie ausführen:
Bucky
Standardmäßig wird eine Bucky collectd UDP Socket auf 127.0.0.1:25826 zu öffnen, um eine StatsD Buchse auf 127.0.0.1:8125 sowie Versuch, eine lokale Graphit (Kohlenstoff) Daemon auf 127.0.0.1:2003 verbinden.
Diese sind alle optional, wie unten dargestellt. Sie können die collectd oder StatsD Server auch komplett deaktiviert werden, wenn Sie dies wünschen.
Ausführen Bucky For Real
Der aufmerksame Beobachter wird bemerken, dass Bucky hat keine Flags für daemonization. Dies ist durchaus Absicht. Die empfohlene Methode, Bucky in der Produktion führen wird über runit. Es ist ein Beispiel-Service-Verzeichnis in Buckys Quell-Repository.
Kommandozeilen-Optionen
Die Befehlszeilenoptionen werden zur Kontrolle der Netzwerkparameter beschränkt. Wenn Sie einige der eher komplizierte Funktionsweise konfigurieren möchten, die Sie benötigen, um eine Konfigurationsdatei zu verwenden. Hier ist die Bucky -h Ausgabe:
Verbrauch: main.py [OPTIONS] [CONFIG_FILE]
Optionen:
& Nbsp; - collectd-ip = IP IP-Adresse für den collectd UDP Socket zu binden
& Nbsp; [127.0.0.1]
& Nbsp; - collectd-port = INT-Port für die collectd UDP Socket zu binden [25826]
& Nbsp; - collectd-Typen FILE =
& Nbsp; Pfad zum collectd types.db Datei
& Nbsp; - disable-collectd deaktivieren collectd UDP-Server
& Nbsp; - statsd-ip = IP IP-Adresse für den StatsD UDP Socket zu binden
& Nbsp; [127.0.0.1]
& Nbsp; - statsd-port = INT-Port für die StatsD UDP Socket zu binden [8125]
& Nbsp; - disable-statsd deaktivieren StatsD Server
& Nbsp; - Graphit-ip = IP IP-Adresse des Graphit / Carbon-Servers [127.0.0.1]
& Nbsp; - Graphit-port = INT Anschluss des Graphit / Carbon-Server [2003]
& Nbsp; - Vollspurenanzeige Voll Fehler, wenn der Konfigurationsdatei nicht geladen
& Nbsp; - Version Show-Programm die Versionsnummer und Ausgang
& Nbsp; -h, --help diese Hilfe und beende zeigen
Config File Options
Die Konfigurationsdatei ist eine normale Python Datei, die eine Anzahl von Variablen definiert. Die meisten Befehlszeilenoptionen können auch in dieser Datei angegeben werden (entfernen Sie die "-" vorangestellt werden, und ersetzen Sie "-" mit "_"), aber wenn an beiden Stellen angegeben, findet der Befehlszeile Priorität. Die Standardeinstellungen als Konfigurationsdatei:
# Präfix für collectd metrischen Namen
collectd_conv_prefix = None
# Postfix für collectd metrischen Namen
collectd_conv_postfix = None
# Zeiten ersetzen (.) In metrischen Namen mit diesem Wert
collectd_replace = "_"
# Wenn ein Pfad ist identisch wiederholten Komponenten, Zusammenbruch
# Sie auf eine einzige Instanz. Dh wird a.b.b.c a.b.c
collectd_strip_duplicates = True
# Diese Rechnernamen werden von Hostnamen entfernt werden, dass
# Empfangen werden. Dh wenn "foo.bar.cloudant.com" kommt
# Und "cloudant.com" aufgeführt ist, dann wird die resultierende
# Hostname "foo.bar" sein.
collectd_host_trim = []
# Collectd Metriken müssen haben einen Namen für generierte
# Verwendung von Graphit. Hier können Sie eine spezielle registrieren
# Handler für Metriken basierend auf der collectd Plugin
# Name.
#
# Zum Beispiel endet die collectd CPU-Plugin mit
# Metrische Namen wie "host.cpu.0.cpu.idle" zu entfernen
# Die zweite Instanz CPU können wir ein Plugin registrieren
#, Um den Namen zu generieren.
#
# Die dict Schlüssel sollte die collectd Plugin-Name sein
# Und der Wert sollte ein aufrufbar, die akzeptiert werden
# Ein einziges Argument und gibt eine Liste von Strings.
collectd_converters = {}
# Die systemweite Suche nach Wahl deaktivieren
# Konverter Plugins.
# Wandler.
collectd_use_entry_points = True
# Die Anzahl der Sekunden, die das StatsD Daemon sollte
# Warten vor dem Spülen Werte.
statsd_flush_time = 10
Konfigurieren collectd
Sie sollten nur noch so etwas wie dieses, um Ihre collectd.conf hinzuzufügen:
Loadplugin "Netzwerk"
& Nbsp; Server "127.0.0.1" "25826"
Natürlich, werden Sie zu richten Sie die IP-Adressen und Ports und stellen Sie sicher, dass Ihre Firewall so konfiguriert, dass UDP-Pakete durchlassen wollen.
Konfigurieren StatsD
Gehen Sie mit Ihrem StatsD Kunden bei Bucky IP / Port und Sie sollten gut zu gehen.
Ein Hinweis auf collectd Wandler
Collectd Metriken sind nicht gerade direkt übersetzbar metrischen Namen Graphit. Der Standard Übersetzer versucht, eine beste Schätzung zu machen, aber dies kann in etwas weniger als ziemlich Graphite Bäume führen.
Aus diesem Grund hat Bucky konfigurierbaren Konverter. Diese werden von der collectd Plugin Namen eingegeben. Der Eingang zu diesen Funktionen ist eine Darstellung des collectd Metrik, wie z aussieht:
{
& Nbsp; "Host": "toroid.local ',
& Nbsp; "Intervall": 10,0,
& Nbsp; "Plugin": "Gedächtnis",
& Nbsp; "plugin_instance ':' ',
& Nbsp; "Zeit": 1320970329,175534,
& Nbsp; "Typ": "Gedächtnis",
& Nbsp; "type_instance": "inaktiv",
& Nbsp; "Wert": 823.009.280,0,
& Nbsp; "value_name": "Wert",
& Nbsp; "value_type ': 1
}
Das Ergebnis dieser Funktion sollte eine Liste von Strings, die Teil der Graphitmetriknamen vertreten. $ Prefix $ hostname.foo.bar $ postfix:.. Zum Beispiel, wenn ein Konverter zurück ["foo", "bar"], die letzte Metriknamen als am Ende.
Ein Beispiel eingebaute Konverter aussieht wie:
# Dies könnte, wie Sie einen Konverter definieren
# Ihre Konfigurationsdatei
Klasse MemoryConverter (Objekt):
& Nbsp; PRIORITY = 0
& Nbsp; def __call __ (self, Probe):
& Nbsp; return ["Gedächtnis", Probe ["type_instance"]]
collectd_converters = [MemoryConverter ()]
Sammler auch eine Vorstellung von Priorität haben, um Konflikte zu lösen. Dies ist lediglich eine Eigenschaft auf der abrufbare namens "PRIORITY" und größere Prioritäten bevorzugt. Ich glaube nicht, diese müssen sehr oft verwendet werden, aber die gibt es nur für den Fall.
Wandler kann entweder deklariert werden und / oder in der optionalen Konfigurationsdatei importiert werden, oder sie können über Einstiegspunkte autodiscovered werden. Der Einstiegspunkt, die durchsucht wird, ist "bucky.collectd.converters". . Der Einstiegspunkt Name sollte der Name sein collectd Plugin
Anforderungen :
- Python
Kommentare nicht gefunden