6

ツイスト マトリックス アプリケーションの適切な設計とは何かを評価するために、助けが必要です。または、そうするのに役立つ任意の URL。

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

ここで、さまざまなアプリケーションを使用して、ジョブを実行し、多くのファイル ツイスト ログ (個別のファイル) で時間指定イベントとしてログ メッセージを送信します。したがって、私のイベントはで構成されています(timestamp, data)

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

ねじれたログ機能でこれを行うことができると思いますか?

シンプルなデザインにするにはどうしたらいいですか?

私の現在の考えは、ソケットツイストロガーを構築し、ログプロセスを複製して、各イベントがファイルロガーに送信されるようにすることでした(個別の履歴が必要です)が、ソケットを介してレシーバーにも送信されます(リアルタイムも必要です)。私がこのように掘り下げているのであれば、誰かがそのようなツイストソケットロガーのスケルトンを持っていますか? ツイストから 2 つのロガーをチェーンするにはどうすればよいですか?

他の部分では、正しいロガーレシーバーは何ですか?

また、以下のスキームを使用して、計算/集約されたデータをライトストリーマーサーバーを介して伝播するため、ネットワーク呼び出しのブロックを回避するために、スレッドメカニズムまたは他のメカニズムが必要になる、私が見たことのないいくつかの問題がある可能性がありますか?

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

feed.send(mytimestamp, myeventdata)

図としては、次のように図式化できます: with (すべてほぼリアルタイム)

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

各 ProducerTimedEventLognN もファイルに記録します。

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

よろしくお願いします

4

2 に答える 2

3

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

第二に、私が正しく理解していれば、「プロデューサー」が TCP 経由でイベントを「コレクター」に送信する必要があります。これにより、タイムスタンプ付きイベントの通信を単純に追加できる特定の通信プロトコルが既に配置されているかどうか、または独立した通信レイヤー (コレクター上の個別の TCP ソケット) を確立する必要があるかどうかという問題が生じます。

いずれにせよ、イベント メッセージ (ログ メッセージと必要なデータ) と作成タイムスタンプを格納する単純なイベント クラスを作成することをお勧めします。プロデューサーは、このクラスのインスタンスを作成します。pickle次に、バイト ストリーム(TCP 接続)を介して特定のイベントをコレクタに送信するために使用できます。コレクターはそれを解凍して処理できます。

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

于 2013-07-18T10:22:52.907 に答える
2

PythonLoggingObserver以外にも追加できますFileLogObserver。次に、syslog にメッセージを送信するように python ロガーを構成します。中央サーバーにメッセージを送信するように Syslog を構成できます。中央サーバーでは、メッセージをログ ファイルに保存し、別のアプリでログ ファイルを読み取ることができますLogReader

クロックを同期するためにも NTP が必要です。

于 2013-07-17T22:39:46.167 に答える