2013-06-25 9 views
6

私はねじれたマトリックスアプリケーションの正しいデザインが何であるか評価するためにいくつかの助けが必要です。またはそうするのを助けるための任意のURL。python、twistedmatrix ...ソケットを介してログイン

  • 背景:私は今FileLogObserverを使用してtwistedmatrixに含まれているログの容量を使用して、カスタムDailyLogFileがpropage、システムをファイルにデータを保存し、後で分析するためにします。

ここでは、ジョブを実行し、多くのファイルのタイミングイベントとしてログメッセージを送信するような、さまざまなアプリケーションを使用するつもりです。したがって、私のイベントは(timestamp, data)

で構成されている私はに、時間的にそれらをグループ化するイベントを一元化リアルタイムに、このそれぞれのメッセージ(timestamp, data)をログに記録を読んでいくつかの方法が必要です、それは上でいくつかの計算とグループをしていますまったく同じタイムスタンプを持つすべてのイベント。

私はねじれログ機能でこれを行うことができますか?

どのように簡単な方法で設計しますか?

私の現在の考えは、ソケットロバストロガーを構築し、各イベントがファイルロガー(私は分離された履歴が必要です)に送信されるようにロギングprocessusを複製することでしたが、 )。もし私がこのように正しい掘り下げをしたら、誰かがそのようなねじれたソケットロガーのスケルトンを持っていますか?どのように私はツイストから2つのロガーをチェーンすることができますか?

その他の部分正しいロガー受信機は何ですか?

私はまた、以下のスキームを使用してlighstreamerサーバーを介して計算された/ agregatedデータを伝播することができますいくつかの困難が私は見ていない可能性がありますいくつかのスレッドのmecanismまたは他のmecanismは、それはとして図式化することができ、図のように

feed = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
feed.connect(("localhost",MYPORT)) 

feed.send(mytimestamp, myeventdata) 

:(すべてが、ほぼリアルタイム)で

producerTimedEventLog1 --->| 
producerTimedEventLog2 --->| 
...      |---> loggerReceiverComputingData ---> lighstreamer process ---> mozilla or whatever webclient 
...      | 
producerTimedEventLognN--->| 

各producerTimedEventLognNまた、ファイルへのロギング。

私はすべての便利なアイデアに興味があります:)

よろしく

+0

他に知りたいことがありますか? –

答えて

3

私は、複数のマシン(独立したコンピュータ)がシステムに組み込まれていることを理解しました。次に、まずイベントを送信しているさまざまなマシンのクロックがある程度同期していることを確認する必要があります。しかし、常にタイムシンクエラーが発生するので、「まったく同じタイムスタンプを持つすべてのイベント」で何を意味するのかを心に留める必要があります。私の観点からは、任意の時間デルタ値を定義する必要があります。次に、この時間デルタ内のタイムスタンプを持つすべてのイベントを「同時に」発生させるように定義します。

第2に、私が正しく理解していれば、 "プロデューサー"がイベントをTCP経由で "コレクター"に送ることを望みます。これは、すでにタイムスタンプのイベントの通信を追加することができる特定の通信プロトコルをすでに持っているか、独立した通信レイヤー(コレクター上の別個のTCPソケット)を確立する必要があるかどうかという問題を提起します。

いずれの場合でも、イベント・メッセージ(ログ・メッセージおよび必要なデータ)と作成タイム・スタンプを保管する単純なイベント・クラスを作成することができます。プロデューサはこのクラスのインスタンスを作成します。特定のイベントをバイトストリーム(TCP接続)を介してコレクタに送信するには、pickleを使用します。コレクタは、それをアンピクルして処理することができます。

Linuxでtime.time()の解像度がWindowsより高いことに注意してください。

2

あなたのFileLogObserver以外PythonLoggingObserverを追加することができます。次に、syslogにメッセージを送るようにpython loggerを設定します。 Syslogは、中央サーバーにメッセージを送信するように設定できます。中央サーバーでは、メッセージをログファイルに保存し、ログファイルを読み取る別のアプリケーションにLogReaderを付けることができます。

クロックを同期するにはNTPが必要です。

関連する問題