Bucky adalah server web kecil untuk mengumpulkan dan menerjemahkan metrik untuk Grafit & nbsp;. Hal ini dapat saat mengumpulkan data metrik dari daemon CollectD dan dari StatsD klien.
Instalasi
Anda dapat menginstal dengan easy_install atau pip per modus operandi yang normal:
& Nbsp; bucky easy_install
# Atau
pip menginstal bucky
Setelah menginstal, Anda dapat menjalankan Bucky seperti:
bucky
Secara default, Bucky akan membuka soket CollectD UDP pada 127.0.0.1:25826, soket StatsD pada 127.0.0.1:8125 serta upaya untuk terhubung ke Graphite (Carbon) daemon lokal pada 127.0.0.1:2003.
Ini semua adalah opsional seperti yang digambarkan di bawah ini. Anda juga dapat menonaktifkan server CollectD atau StatsD sepenuhnya jika Anda inginkan.
Menjalankan Bucky Untuk Real
Pengamat cerdik akan melihat bahwa Bucky tidak memiliki bendera untuk daemonization. Hal ini cukup sengaja. Cara yang disarankan untuk menjalankan Bucky produksi adalah melalui runit. Ada direktori layanan contoh dalam repositori sumber Bucky.
Command Line Pilihan
Opsi baris perintah terbatas untuk mengendalikan parameter jaringan. Jika Anda ingin mengkonfigurasi beberapa cara kerja yang lebih rumit Anda harus menggunakan file konfigurasi. Berikut output h bucky:
Penggunaan: main.py [OPTIONS] [CONFIG_FILE]
Pilihan:
& Nbsp; - collectd-ip address = IP IP untuk mengikat untuk soket UDP CollectD
& Nbsp; [127.0.0.1]
& Nbsp; - collectd-port = INT Pelabuhan untuk mengikat untuk soket CollectD UDP [25826]
& Nbsp; - collectd-jenis = FILE
& Nbsp; Jalur ke collectd berkas types.db
& Nbsp; - disable-collectd Nonaktifkan server CollectD UDP
& Nbsp; - statsd-ip address = IP IP untuk mengikat untuk soket UDP StatsD
& Nbsp; [127.0.0.1]
& Nbsp; - statsd-port = INT Pelabuhan untuk mengikat untuk soket StatsD UDP [8125]
& Nbsp; - disable-statsd Nonaktifkan server StatsD
& Nbsp; - grafit-ip = IP IP address dari Grafit / Carbon Server [127.0.0.1]
& Nbsp; - grafit-port = INT Port of the Grafit / Carbon Server [2003]
& Nbsp; - penuh jejak Tampilan error penuh jika file konfigurasi gagal untuk memuat
& Nbsp; - nomor versi versi acara program dan keluar
& Nbsp; h, help menunjukkan pesan bantuan ini dan keluar
Config Pilihan File
File konfigurasi adalah file Python normal yang mendefinisikan sejumlah variabel. Sebagian besar opsi baris perintah juga dapat ditentukan dalam file ini (menghapus "-" awalan dan mengganti "-" dengan "_") tetapi jika ditentukan di kedua tempat, baris perintah diprioritaskan. Default sebagai file konfigurasi:
# Awalan untuk collectd nama metrik
collectd_conv_prefix = None
# Postfix untuk collectd nama metrik
collectd_conv_postfix = None
# Ganti titik (.) Dalam nama metrik dengan nilai ini
collectd_replace = "_"
# Jika jalan memiliki komponen berulang identik, kolaps
# Mereka untuk satu kejadian. Yaitu, a.b.b.c menjadi a.b.c
collectd_strip_duplicates = True
# Hostname ini akan dihapus dari nama host yang
# Diterima. Yaitu, jika "foo.bar.cloudant.com" datang
# Dan "cloudant.com" terdaftar, maka yang dihasilkan
# Hostname akan "foo.bar".
collectd_host_trim = []
# CollectD metrik harus memiliki nama yang dihasilkan untuk
# Digunakan oleh Graphite. Di sini Anda dapat mendaftarkan khusus
# Handler untuk metrik berdasarkan plugin CollectD
Nama #.
#
# Misalnya, plugin CollectD CPU berakhir dengan
# Nama metrik seperti "host.cpu.0.cpu.idle" untuk menghapus
# Kedua contoh CPU kita dapat mendaftar plugin
# Untuk menghasilkan nama.
#
# Kunci dict harus CollectD nama Plugin
# Dan nilai harus menjadi callable yang menerima
# Satu argumen dan mengembalikan daftar string.
collectd_converters = {}
# Opsional menonaktifkan pencarian luas untuk sistem
Plugin # converter.
# Konverter.
collectd_use_entry_points = True
# Jumlah detik bahwa daemon StatsD harus
# Tunggu sebelum dibilas nilai.
statsd_flush_time = 10
Konfigurasi CollectD
Anda hanya perlu menambahkan sesuatu seperti ini ke collectd.conf Anda:
LoadPlugin "jaringan"
& Nbsp; Server "127.0.0.1" "25826"
Jelas, Anda akan ingin untuk menyesuaikan alamat IP dan port dan pastikan bahwa firewall Anda dikonfigurasi untuk memungkinkan paket UDP melalui.
Konfigurasi StatsD
Hanya titik StatsD klien Anda di Bucky IP / Pelabuhan dan Anda harus baik untuk pergi.
Catatan tentang CollectD konverter
CollectD metrik tidak benar-benar langsung diterjemahkan ke Graphite nama metrik. Penerjemah standar mencoba untuk membuat perkiraan terbaik tetapi hal ini dapat mengakibatkan sedikit kurang dari pohon Grafit cantik.
Untuk alasan ini, Bucky memiliki konverter dikonfigurasi. Ini bersemangat dari CollectD nama Plugin. Input untuk fungsi-fungsi ini merupakan representasi dari metrik CollectD yang terlihat seperti seperti:
{
& Nbsp; 'host': 'toroid.local',
& Nbsp; 'Interval' 10.0,
& Nbsp; 'Plugin': 'memori',
& Nbsp; 'plugin_instance': '',
& Nbsp; 'waktu': 1320970329,175534,
& Nbsp; 'jenis': 'memori',
& Nbsp; 'type_instance': 'tidak aktif',
& Nbsp; 'nilai': 823.009.280,0,
& Nbsp; 'value_name': 'value',
& Nbsp; 'value_type': 1
}
Hasil fungsi ini harus menjadi daftar string yang mewakili bagian dari Grafit nama metrik. Misalnya, jika sebuah konverter kembali ["foo", "bar"], final nama metrik akan berakhir sebagai: $ awalan $ hostname.foo.bar $ postfix...
Contoh builtin converter terlihat seperti seperti:
# Ini mungkin bagaimana Anda mendefinisikan converter di
# File konfigurasi
Kelas MemoryConverter (object):
& Nbsp; PRIORITAS = 0
& Nbsp; def __call __ (self, sampel):
& Nbsp; kembali ["memori", sampel ["type_instance"]]
collectd_converters = [MemoryConverter ()]
Kolektor juga memiliki gagasan tentang prioritas untuk menyelesaikan konflik. Ini hanyalah sebuah properti di callable bernama "PRIORITAS" dan prioritas yang lebih besar lebih disukai. Saya tidak membayangkan ini akan perlu digunakan sangat sering, tetapi di sana hanya dalam kasus.
Konverter baik dapat dinyatakan dan / atau diimpor dalam file konfigurasi opsional, atau mereka dapat autodiscovered melalui titik masuk. Titik masuk yang dicari adalah "bucky.collectd.converters". . Nama entry point harus CollectD nama Plugin
Persyaratan :
- Python
Komentar tidak ditemukan