翻訳者注:
静かに静かにピンバが出てきました 。 ハブラーでまだそれについて書いていないのは奇妙です:)
これは何ですか:
PynbaはWSGI
ピンバレイヤーです。 これを使用すると、MySQLインターフェイスを使用してデータを読み取り、統計を収集したり、サーバーを監視したりできます。
Pythonプロセスからのデータを蓄積し、UDPを介してプロトコルに送信し、美しい、人間が読める形式のシンプルなレポートで統計を表示します。 また、生データへの読み取り専用アクセスも提供するため、たとえば、より詳細なレポートを作成できます。
ユーザーは、任意のラベルのタイマーを使用して、コードの重要なセクションのパフォーマンスを測定することもできます。
なぜ別の統計ハンドラーではないのですか?
ピンバがかっこいいから!
IsCool Entertainmentでは、 Pinbaを使用してPHPアプリケーションを監視しています。
必要条件
ライブラリには、
Pinba 、
Protobuf 、および
Werkzeugが必要
です 。
インストールプロセス自体には
setuptoolsが必要です。
そうでない場合は、インストールしてください。
カスタマイズ
公式バージョンを使用している場合は、次を実行してください。
$ pip install iscool_e.pynba
現在の(開発)バージョンを好む場合は、
$ git clone https://github.com/IsCoolEntertainment/pynba.git $ python setup.py install
使用する
あなたのメインのWSGIプログラムがどこにあるか教えてください:
def app(environ, start_response): ...
pynbaデコレータをインポートし、メインのWSGIアプリケーションでデコレートします。
from iscool_e.pynba import monitor @monitor(('127.0.0.1', 30002)) def app(environ, start_response): ...
プログラムが起動するたびに、UDPストリームが送信されます。
最終的に、タイマーを使用してコードの重要なセクションを測定できます。 これを行うには、単にpynbaプロキシをインポートし、それを使用して新しいタイマーを作成します。
from iscool_e.pynba import pynba timer = pynba.timer(foo="bar") timer.start() ... timer.stop()
PHP拡張との違い
送信されたデータ:
タイマーで:
- Pythonバージョンでは、各ラベルに複数の値を設定できます。 シーケンス、マッピング、または呼び出し可能オブジェクトを指定するだけです。 この例:
pynba.timer(foo='bar', baz=['seq1', 'seq2'], qux={'map1': 'val1'})
Pinbaデータベースの3つのラベルに対して4つの値を生成します。
('foo', 'bar'), ('baz', 'seq1'), ('baz', 'seq2'), ('qux.map1', 'val1')
免許
パッケージはMITライセンスの下で配布されます。 完全な説明については、
ライセンスをお読みください。