バッキーは、グラファイトのメトリックを収集し、変換するための小規模なWebサーバです これは、現在はCollectDデーモンからとStatsDクライアントからメトリックデータを収集することができます。
<強い>インストールの
あなたは、通常の手口に従ってeasy_installをまたはPIPでインストールすることができます。
&NBSP; easy_installをバッキー
#または
ブッキーをインストールピップ
インストール後、バッキーのように実行することができます。
ブッキー
デフォルトでは、バッキーは127.0.0.1:25826にCollectD UDPソケット、StatsDの127.0.0.1:8125のソケットなど127.0.0.1:2003上のローカルグラファイト(カーボン)デーモンに接続しようとする試みが開きます。
下図のように、これらはすべてオプションです。あなたがそう望む場合にも、完全にCollectDまたはStatsDサーバを無効にすることができます。
の実際のバッキーの実行の
明敏な観察者はバッキーはデーモン化のためのフラグを持っていないことがわかります。これは非常に意図的にである。生産にバッキーを実行することをお勧めの方法は、値Runit経由である。バッキーのソースリポジトリの例サービスディレクトリがあります。
のコマンドラインオプションの
コマンドラインオプションは、ネットワークパラメータを制御することに限定されている。あなたがより複雑な仕組みの一部を構成したい場合は、設定ファイルを使用する必要があります。ここでバッキー-h出力は次のとおりです。
使用方法:main.py [オプション] [CONFIG_FILE]
オプション:
&NBSP; - CollectD UDPソケットのバインドするcollectd-IP = IPのIPアドレス
&NBSP; 127.0.0.1]
&NBSP; - collectdポート= INTポートCollectD UDPソケット用にバインドするには[25826]
&NBSP; - collectd-タイプ= FILE
&NBSP; collectdのtypes.dbファイルへのパス
&NBSPは、 - 無効に-collectdはCollectD UDPサーバを無効にする
&NBSP; - StatsD UDPソケットのバインドするstatsd-IP = IPのIPアドレス
&NBSP; 127.0.0.1]
&NBSP; - statsdポート= INTポートStatsD UDPソケット用にバインドするには[8125]
&NBSP; - 無効に-statsdはStatsDサーバを無効にする
&NBSP; - グラファイト/カーボンサーバのグラファイト-IP = IPのIPアドレス[127.0.0.1]
&NBSP; - グラファイト/カーボンサーバのグラファイトポート= INTポート[2003]
&NBSP; - フルトレース表示フルエラー設定ファイルの読み込みに失敗した場合
&NBSP; - バージョンショーのプログラムのバージョン番号を表示して終了
&NBSP; -h、このヘルプメッセージを表示して終了--help
の設定ファイルのオプションの
設定ファイルには、変数の数を定義する通常のPythonファイルです。コマンドラインオプションのほとんどは、このファイルで指定することができます(削除する " - "接頭辞と置き換えて、「 - 」「_」を使用)が、両方の場所で指定されている場合、コマンドラインが優先されます。 configファイルとしてデフォルト設定:
collectdメトリック名の#プレフィックス
collectd_conv_prefix =なし
collectdメトリック名の#Postfixは
collectd_conv_postfix =なし
#交換してピリオド(。)、この値を持つメトリック名で
collectd_replace = "_"
#パスは、同一の繰り返しコンポーネント、崩壊している場合
#単一のインスタンスにそれら。すなわち、a.b.b.cはa.b.cになる
collectd_strip_duplicates = TRUE
#これらのホスト名は、そのホスト名から削除されます
#が受信される。すなわち、「foo.bar.cloudant.com "が入って来た場合に
#と「cloudant.com "はその後、記載されて生じた
#ホスト名が "foo.bar"となります。
collectd_host_trim = []
#のCollectDメトリックがために生成された名前を持っている必要があります
グラファイトによる■使用。ここでは、特別なを登録することができます
CollectDプラグインに基づいてメトリックの#ハンドラ
#名前。
#
たとえば、#は、CollectD CPUのプラグインは、で終わり
削除する「host.cpu.0.cpu.idle」のような#メトリック名
#番目のインスタンスのCPUは、我々はプラグインを登録することができます
#名前を生成する。
#
#dictのキーはCollectDプラグイン名である必要があります
#と値を受け入れ呼び出し可能でなければなりません
#単一の引数と文字列のリストを返します。
collectd_converters = {}
#必要に応じて、システム全体の検索を無効にする
#コンバータのプラグイン。
#コンバータ。
collectd_use_entry_points = TRUE
秒の#数StatsDデーモンが必要があること
#値をフラッシュする前に待機する。
statsd_flush_time = 10
のCollectDの設定の
あなただけのあなたのcollectd.confにこのような何かを追加する必要がありますする必要があります。
LoadPlugin "ネットワーク"
<プラグインの「ネットワーク」>
&NBSP;サーバー "127.0.0.1" "25826"
プラグイン>
明らかに、あなたは、IPアドレスとポートを一致し、ファイアウォールのは、UDPパケットを経て許可するように設定されていることを確認したいと思う。
のStatsDの設定の
ただバッキーのIP /ポートであなたのStatsDクライアントを指し、あなたが行って良いことがあります。
のCollectDコンバータ上の注意の
CollectDメトリックは、メトリック名をグラファイトに正確に直接変換できない。デフォルトのトランスレータは、最良の推測を試みますが、これはかなりグラファイトの木よりもわずかに小さくすることがあります。
このため、バッキーは、設定可能な変換器を有している。これらはCollectDのプラグイン名をオフにキーが付いています。これらの関数への入力は、次のようになりCollectDメトリックの表現です。
{
&NBSP; 'ホスト': 'toroid.local」、
&NBSP; '間隔':10.0、
&NBSP; 'プラグイン': 'メモリー'、
&NBSP; 'plugin_instance': ''、
&NBSP; '時間':1320970329.175534、
&NBSP; '型': 'メモリー'、
&NBSP; 'type_instance':「非アクティブ」、
&NBSP; '値':823009280.0、
&NBSP; 'VALUE_NAME': '値'、
&NBSP; 'VALUE_TYPE':1
}
この関数の結果は、グラファイトメトリック名の一部を表す文字列のリストでなければなりません。 $接頭辞$ hostname.foo.bar $の後置:コンバータは["foo"の、 "バー"]返さ例えば、もし、最後のメトリック名のようになってしまいます。
例組み込みコンバータは、そのような次のようになります。
#これは、コンバータの定義方法かもしれません
#設定ファイル
クラスMemoryConverter(オブジェクト):
&NBSP; PRIORITY = 0
&NBSP;デフ__call __(自己、サンプル):
&NBSP; []、「メモリ」サンプル["type_instance"]を返す
collectd_converters = [MemoryConverter()]
コレクターにも衝突を解決するために、優先順位の概念を持っている。これは単に、呼び出し可能な名前の「優先」のプロパティで、より大きな優先順位が好ましい。私は、これは非常に頻繁に使用する必要があります想像するが、そのそこに念のためしないでください。
コンバータは、宣言及び/またはインポートオプションの設定ファイルに、またはそれらがエントリポイントを経由して自動検出することができますすることができますどちらか。検索されるエントリポイントは「bucky.collectd.converters」である。エントリポイント名はCollectDプラグイン名にする必要があります。
の要件の:ます。
- のPythonます。
コメントが見つかりません