2011-07-19 10 views
0

発生する可能性のあるイベントはありますが、それは登録する必要があります。これは、何が起こったのか、何を変更して改善する必要があるのか​​を確認するために、チューニングに必要なデータです。キャッチされた例外または記録されたデータ処理の逸脱からイベントを追跡して永続化する方法は?

通常、これは例外がスローされた場合、またはif条件がいくつか渡された場合にcatchブロックで行われます。

シェルスクリプトを作成しログからデータを収集したくないので、ほとんどの場合可能なDBを使用してあらゆるコンテキストにテーブルを作成できますが、メンテナンスやリファクタリングには非常に不便です開発。特に、RDB型のデータが使用されるためです。ほとんどの場合、唯一の共有データはuserId、time、component、fileId、fileSize ||要素カウント、カウント偏差||

また、このためにちょっとやりすぎたnosqlストアを使用することもできますが、データにはタイプフリーの性質があるため、より便利になると思います。

どうすればいいですか?これはどのように呼び出されますか?私はJMXがこのシナリオに対処していないと思います。 Spring AOPまたはAOPは、一般に、これの分散された性質のみを扱います。

答えて

1

次の2つの別々の質問持っているように聞こえる:どのように私は最初の場所で特定のイベントをキャプチャする必要があり

  1. を?
  2. イベントを取得したらどうすればよいですか?

1については、AOPはイベントをキャプチャするためのかなり一般的な解決策です。私は、あなたが「AOPは一般的にこの分散した性質だけを扱っている」ということを意味していません。 AOPについては何も配布されていません。 AOPをできるだけ簡単に統合する方法を誰かが伝えるためにあなたのアプリケーションについて十分に話したことはありませんが、多くの情報が利用可能ですonline

2については、どのくらいのデータについて話していますか?イベントごとにどれくらいの情報を保存したいですか?各メッセージの似ている/違いは何ですか?

  • 任意の秒、分、時、日などの間に保存するデータ量を把握することができます。既存の新しいテクノロジを導入して環境を複雑にすることはありません。
  • データを同期して読み込むことはできますか?はいの場合、それは簡単です。それ以外の場合は、データをログに記録し、単純なETLスクリプトを使用して定期的にデータを統合します。これはおそらく、生産現場にはない新しいnosqlストアを設定するよりもずっと簡単で安価になるでしょう。
  • 保存したいデータを決めます。おそらくid、タイプ、タイムスタンプ、ソース(アプリケーションのサーバーやインスタンスなど)、詳細などのように見えます。詳細は型固有のものでなければなりません。
  • データに対して実行するクエリまたはレポートの種類を決定します。
  • 特定のクエリが可能になるように型固有のものを構造化する必要がありますか?型固有のものはXMLまたはJSONドキュメントに保存し、型固有のレポートでのみ解析できますか?または、クエリ自体に型固有のものを参照する必要がありますか?タイプ固有の詳細は、クエリを困難にする可能性がありますが、mongodbなどのnosqlデータベースが実際にここで役立つかもしれません。
  • データ保持ポリシーを解説します。おそらく、ある時点で古いデータをクリーンアップする必要があります。これは、ストレージの設計に影響する可能性があります。
+0

ありがとうございましたjtoberon、注意すべき点 – lisak

関連する問題