Probekit は、スクリプト記述が可能なバイトコード・インスツルメンテーション (BCI) フレームワークです。このフレームワークを使用して Java コード・フラグメントを作成し、プログラムに挿入することで、実行時にそのプログラムに関する情報を提供できるようになります。
Probekit ファイルには、1 つまたは複数のプローブを含めることができます。その各プローブに 1 つまたは複数のフラグメントを含めることができます。 所定のプログラムでどのプローブを使用するか、またプローブ・フラグメントをいつ実行するかを指定することができます。
複数のプローブ・フラグメントが集められて、1 セットの Java メソッドになり、その後それをコンパイルします。 プローブをコンパイルすると、プローブ・コード・フラグメントが標準の定型コードと結合されて、新しいクラスの Java ソース・コードが生成されます。 プローブ・フラグメントから生成された関数が、生成されたプローブ・クラスの静的メソッドとして現れます。
プローブが適用されたとき、BCI エンジンがプローブのリストおよびそれらのターゲット・パターンを参照して、プローブ・フラグメント・メソッドへの呼び出しをターゲット・プログラムに挿入します。 呼び出しステートメントをターゲット・メソッドに挿入する処理を「インスツルメンテーション」(装備) といいます。 プローブ・フラグメントによって要求されるデータ項目 (たとえば、メソッドの名前や引数など) は引数として渡されます。 このシステムの 1 つの利点は、小さいオーバーヘッドで、多数のターゲット・メソッドにプローブを挿入できることです。
クラス内のいずれかのメソッドがフィルター規則を満たし、インスツルメンテーションに適格となった場合、そのクラスは「プローブ済みクラス」であるといいます。
親トピック: ユーザー定義プローブで実行時データを収集
関連情報
基本的なプローブのサンプル