アプリケーション サービスの監視は、インテリジェントな運用および保守システムの重要な部分です。 UAV システムでは、ミドルウェア拡張フレームワーク (MOF) プローブがアプリケーション ポートレートおよびパフォーマンス データ収集機能を提供し、データ収集機能は主にリアルタイム データ、ポートレート データ、コール リンク データ生成、スレッド データ分析データの 4 種類のデータを収集します。 . .リアルタイムのデータ収集を実現するために、UAVStack は統合されたデータ キャプチャ動作とキャプチャ結果を生成する機能を提供する CaptureFramework フレームワークを設計しました。
#JavaAssist
モニター キャプチャ システム
precap/docap
2.5 グラブ動作の分析
monitor.doCapture Monitor インターフェースで doCapture を呼び出します。その実装クラスは StandardMonitor です。
StandardMonitor の doCapture メソッドは、主に次の操作を実行します:
MonitorElement 配列をループし、キャプチャ データ実装クラスを取得し、実装クラスに基づいて実行される現在のハンドラを取得し、最後に現在のデータに基づいてキャプチャ ステージ (precap/docap) を決定します。取得したハンドラを取得し、対応する処理を実行します。異なるハンドラーは、異なる特性に基づいて MonitorElementInstance を生成し、最終的に結果を StandardMonitorRepository データ構造に保存します。
ServerEndRespTimeCapHandler (サーバー側のクロール動作) を例に挙げます。
preCap メソッド: サービスの開始要求時刻のみを記録します。
doCap メソッド: 異なる MonitorElemId に従って異なる論理処理を実行し、最後に MonitorElementInstance インスタンスをカプセル化し、最大値のピーク除去、最大値、最小値を含むキャプチャ動作の結果を処理します。 、ステータスコードを返す、タイムスタンプの更新、カウントおよびその他の対応するデータ処理。
つまり、実行時データであり、生成される情報を指します。プログラムの実行時、プログラムが占有している CPU、ヒープ メモリ、JVM 情報、およびサービス アクセスとクライアント呼び出しに関連する統計 (平均応答時間、アクセス数など)。
DefaultMonitorSupporter の実装
サーバー側のデータ収集は、DefaultMonitorSupporter.start をエントリ ポイントとして使用します。モニター インスタンスの構築 :
## デフォルトでは、サービス タイプの StandardMonitor インスタンスが構築され、これには StandardMonitorRepository インスタンスが含まれます。StandardMonitorRepository インスタンスはモニターを登録します。このインスタンスには複数の MonitorElement が含まれますインスタンスを作成し、すべての MonitorElement インスタンスを elemsMap 属性に保存します。 elemsMap 属性は、さまざまなコレクション オブジェクトに応じてさまざまなコレクション クラス ハンドラーを保存します。##3.3 クライアント データの収集
DefaultClientMonitorSupporter の実装クライアント データ収集は、モニター インスタンスを構築するためのエントリ ポイントとして DefaultClientMonitorSupporter.start を使用します:
クライアント タイプを構築します。 StandardMonitor のデフォルトのインスタンスには、StandardMonitorRepository インスタンスが含まれます。StandardMonitorRepository インスタンスはモニターを登録し、1 つのインスタンスに複数の MonitorElement インスタンスが含まれ、すべての MonitorElement インスタンスを elemsMap 属性に保存します。
elemsMap: このプロパティは、ClientRespTimeCapHandler コレクション クラスを 1 つだけ保存します。クライアント側のデータ収集であっても、サーバー側のデータ収集であっても、モニターは DataObserver にインストールされ、最終的には正常に構築されます。モニターは、指定されたキャプチャ方法 (つまり、precap と docap) に設定されます。
3.4 DataObServer の実装DataObServer は、インターフェイス データを公開するための 2 つのモード、つまり JMX と HTTP を提供します。 HTTP モード: HttpDataObserverWorker .start によるをエントリポイントとして使用し、JVMデータ、モニタデータ、プロファイルデータを取得するためのハンドラがそれぞれ3つ登録されています。各ハンドラーは固有のインターフェイスを公開しますが、それらはすべて JSON 形式でデータを返します。以上がCaptureFramework フレームワーク分析を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。