CaptureFramework フレームワーク分析を実行する方法
1. 背景
アプリケーション サービスの監視は、インテリジェントな運用および保守システムの重要な部分です。 UAV システムでは、ミドルウェア拡張フレームワーク (MOF) プローブがアプリケーション ポートレートおよびパフォーマンス データ収集機能を提供し、データ収集機能は主にリアルタイム データ、ポートレート データ、コール リンク データ生成、スレッド データ分析データの 4 種類のデータを収集します。 . .リアルタイムのデータ収集を実現するために、UAVStack は統合されたデータ キャプチャ動作とキャプチャ結果を生成する機能を提供する CaptureFramework フレームワークを設計しました。
2. CaptureFramework の動作原理
2.1 主要な技術的説明
#JavaAssist
モニター キャプチャ システム
precap/docap
- キャプチャポイント: Tomcat、MSCP、Springboot、および Jetty キャプチャ ポイントをサポートします。
- UAVServer シングルトン: 統合キャプチャ エントリ ポイントとして、同期メソッドと非同期メソッドを提供します。
- StandardMonitor: Monitor インターフェイスを実装し、リアルタイム データ キャプチャ実装クラスであり、キャプチャ動作とキャプチャ結果の生成を担当する doCapture メソッドを提供します。
- MonitorElemCapHandler: さまざまなクローリング ロジックとクローリング ポイントの共通インターフェイスは、さまざまな埋め込みロジックを実装し、クローリング動作のメソッド、preCap と doCap、およびクローリング結果を生成するメソッドを提供します。
- StandardMonitorRepository: リアルタイム データ キャプチャのデータ構造を保存します。
- DataObserver: JMX/HTTP インターフェイス データを公開します。
- Monitor リアルタイム監視は主に DefaultMonitorSupporter クラスから開始され、StandardMonitor オブジェクトを初期化し、監視オブジェクトをインストールします。 CaptureFramework 中間を介して DataStore オブジェクトに送信されます。
- DataObserver は、後続の MA クローリング用の JMX/HTTP サービスを提供します。HTTP サービスには、HttpJEEJVMObserver、HttpJEEMonitorObserver、および HttpJEEProfileObserver という 3 つのハンドラーが登録されています。異なるハンドラーは異なるインターフェイスを公開します。
- MonitorHandler パッケージの Handler クラスは、特にモニターのインジケーター データの計算と統計を処理します。
- 同期キャプチャ エントリ ポイント: runMonitorCaptureOnServerCapPoint
- 非同期キャプチャ エントリ ポイント: runMonitorAsyncCaptureOnServerCapPoint
- 非同期メソッド実行前の呼び出し
- ##メソッド実行後の非同期呼び出しは次のとおりです。ここで、ccMap は、非同期呼び出し
2.5 グラブ動作の分析
- #モニター インターフェイス: 最も重要な複数のインターフェイスを提供します。そのうちの 2 つは、doCapture メソッドと doPreStore メソッドです。doCapture は、特定のキャプチャ ポイントでの実行を実装するために使用されます。データをキャプチャする動作については、doPreStore メソッドは、データ構造にデータを保存する前にいくつかのキャプチャ アクションを実装するために使用されます。特殊なデータ処理。
- StandardMonitor クラス: Monitor インターフェイスの特定の実装クラス。
- StandardMonitorRepository クラス: リアルタイム データ キャプチャ データ構造を格納します。
- MonitorElementInstance インターフェイス: リアルタイム データ キャプチャ データ構造を格納するインスタンス インターフェイス。
- StandardMonitorElementInstance クラス: MonitorElementInstance インターフェイスの特定の実装クラス。
- 同期キャプチャ エントリ ポイントであっても、非同期キャプチャ エントリ ポイントであっても、doCapture メソッドが実行されます。コード スニペットは次のとおりです:
monitor.doCapture Monitor インターフェースで doCapture を呼び出します。その実装クラスは StandardMonitor です。
StandardMonitor の doCapture メソッドは、主に次の操作を実行します:
- パラメータに従って現在の MonitorElement 配列を取得します。MonitorElement 配列は、StandardMonitorRepository の getElementByCapId を通じて実装されます。 ##
MonitorElement 配列をループし、キャプチャ データ実装クラスを取得し、実装クラスに基づいて実行される現在のハンドラを取得し、最後に現在のデータに基づいてキャプチャ ステージ (precap/docap) を決定します。取得したハンドラを取得し、対応する処理を実行します。異なるハンドラーは、異なる特性に基づいて MonitorElementInstance を生成し、最終的に結果を StandardMonitorRepository データ構造に保存します。
ServerEndRespTimeCapHandler (サーバー側のクロール動作) を例に挙げます。
preCap メソッド: サービスの開始要求時刻のみを記録します。
doCap メソッド: 異なる MonitorElemId に従って異なる論理処理を実行し、最後に MonitorElementInstance インスタンスをカプセル化し、最大値のピーク除去、最大値、最小値を含むキャプチャ動作の結果を処理します。 、ステータスコードを返す、タイムスタンプの更新、カウントおよびその他の対応するデータ処理。
3. リアルタイム データの収集
3.1 リアルタイム データとは
つまり、実行時データであり、生成される情報を指します。プログラムの実行時、プログラムが占有している CPU、ヒープ メモリ、JVM 情報、およびサービス アクセスとクライアント呼び出しに関連する統計 (平均応答時間、アクセス数など)。
3.2 サーバー側のデータ収集
DefaultMonitorSupporter の実装
サーバー側のデータ収集は、DefaultMonitorSupporter.start をエントリ ポイントとして使用します。モニター インスタンスの構築 :
- ServerEndRespTimeCapHandler: サーバー、アプリ、URL などの応答時間と読み込み数を収集します。
- JVMStateCapHandler: ヒープ使用量、GC 数、スレッド数、CPU、クラス数などを含む jvm ステータスを収集します。 #コード スニペットは次のとおりです。
##3.3 クライアント データの収集
クライアント データ収集は、モニター インスタンスを構築するためのエントリ ポイントとして DefaultClientMonitorSupporter.start を使用します:
クライアント タイプを構築します。 StandardMonitor のデフォルトのインスタンスには、StandardMonitorRepository インスタンスが含まれます。StandardMonitorRepository インスタンスはモニターを登録し、1 つのインスタンスに複数の MonitorElement インスタンスが含まれ、すべての MonitorElement インスタンスを elemsMap 属性に保存します。
- ClientRespTimeCapHandler: クライアントの応答時間や読み込み数などを収集します。
クライアント側のデータ収集であっても、サーバー側のデータ収集であっても、モニターは DataObserver にインストールされ、最終的には正常に構築されます。モニターは、指定されたキャプチャ方法 (つまり、precap と docap) に設定されます。
- JMX メソッド: JMX エージェントは、getMBeanInfo メソッドを通じて公開されたインターフェイスを取得してデータを取得します。
- DataObServer は、モニターのインストールとアンインストール、リスナーの追加と削除、プロファイルとモニターの取得を行うメソッドも提供します。
以上がCaptureFramework フレームワーク分析を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック







