JProfiler ヘルプ

MBeanブラウザ

多くのアプリケーションサーバーやフレームワーク(例: Apache Camel)は、設定やモニタリングの目的でJMXを利用して多数のMBeanを公開しています。JVM自体も、 プラットフォームMXBean をいくつか公開しており、JVM内部の低レベルな動作に関する興味深い情報を提供します。

JProfilerには、プロファイルされたVM内で登録されているすべてのMBeanを表示するMBeanブラウザが含まれています。MBeanサーバーへアクセスするためのJMXのリモート管理レベルは不要です。なぜなら、JProfilerエージェントがすでにインプロセスで動作しており、すべての登録済みMBeanサーバーへアクセスできるためです。

JProfilerはOpen MBeanの型システムをサポートしています。Open MBeanは、いくつかの単純な型を定義できるだけでなく、カスタムクラスを必要としない複雑なデータ型も定義できます。また、配列やテーブルもデータ構造として利用可能です。MXBeanを使うことで、JMXはJavaクラスからOpen MBeanを自動的に作成する簡単な方法を提供します。例えば、JVMが提供するMBeanはMXBeanです。

MBean自体には階層構造はありませんが、JProfilerはオブジェクトのドメイン名の最初のコロンまでを最上位のツリーレベルとし、すべてのプロパティを再帰的にネストしたレベルとして、ツリー構造に整理します。プロパティ値が先頭に表示され、プロパティキーは末尾にカッコで表示されます。typeプロパティは、最上位ノードの直下に優先的に表示されます。

属性

MBeanの内容を表示するツリーテーブルの最上位レベルには、MBeanの属性が表示されます。

以下のデータ構造は、ネストされた行として表示されます。

  • 配列
    プリミティブ配列やオブジェクト配列の要素は、インデックスをキー名としてネストされた行に表示されます。
  • 複合データ
    複合データ型のすべての項目は、ネストされた行として表示されます。各項目は任意の型となるため、任意の深さまでネストが可能です。
  • テーブルデータ
    多くの場合、MXBean内でjava.util.Mapのインスタンスが、1つのキー列と1つの値列を持つテーブルデータ型にマッピングされます。キーの型が単純型の場合、マップは「インライン」で表示され、各キーと値のペアがネストされた行として表示されます。キーが複雑な型の場合は、「map entry」要素のレベルが追加され、ネストされたキーと値のエントリが挿入されます。複合キーや複数値を持つ一般的なテーブル型でも同様です。

オプションで、MBean属性を編集可能にすることもできます。その場合、  編集アイコンが値の横に表示され、 値を編集アクションが有効になります。複合型やテーブル型はMBeanブラウザ上で編集できませんが、配列や単純型は編集可能です。

配列などの値がnull許容の場合、エディタにはnull状態を選択できるチェックボックスが表示されます。

配列要素はセミコロンで区切ります。末尾のセミコロンは無視されるため、 11;は同じ意味になります。セミコロンの前に値がない場合、オブジェクト配列ではnull値として扱われます。文字列配列の場合、ダブルクォーテーション("")で空要素を作成でき、セミコロンを含む要素は全体をクォートします。文字列要素内のダブルクォーテーションは2つ重ねて記述します。 例えば、次のように入力すると:

"Test";"";;"embedded "" quote";"A;B";; 

次の文字列配列が作成されます。

new String[] {"Test", "", null, "embedded \" quote", "A;B", null} 

JProfilerは、数値型のMBean属性値からカスタムテレメトリーを作成できます。 MBeanテレメトリーラインを定義してカスタムテレメトリーを作成する際、テレメトリーデータを提供する属性を選択できるMBean属性ブラウザが表示されます。すでにMBeanブラウザで作業している場合は、コンテキストメニューの値のテレメトリーを追加アクションから、簡単に新しいカスタムテレメトリーを作成できます。

テレメトリーは、複合データや単純キー・単一値のテーブルデータ内のネストされた値もトラッキングできます。ネストされた行を選択すると、パスコンポーネントがスラッシュで区切られた値パスが構築されます。

操作

MBean属性の閲覧・編集に加えて、MBean操作の呼び出しや戻り値の確認も可能です。MBean操作は、MBeanインターフェース上のsetter/getter以外のメソッドです。

操作の戻り値は複合型・テーブル型・配列型の場合もあり、その場合はMBean属性ツリーテーブルと同様の内容を持つ新しいウィンドウが表示されます。戻り値が単純型の場合は「戻り値」という1行のみ表示されます。それ以外の型の場合、「戻り値」がルート要素となり、その下に結果が追加されます。

MBean操作には1つ以上の引数を持つことができます。入力時のルールや制限は、MBean属性の編集時と同じです。

MBeanスナップショット

MBeanのライブ値の閲覧に加えて、現在の状態のスナップショットを取得することもできます。新しいスナップショットはMBeanビューセクション内の個別のビューとして追加され、カスタムラベルを割り当てることができます。スナップショット取得時には、現在のフィルターに従って表示されているMBeanのみが含まれます。これにより、特定のMBeanに集中し、不要なMBeanのクエリによるオーバーヘッドを削減できます。

JProfiler UIでスナップショットを保存すると、すべてのMBeanスナップショットも保存されますが、ライブMBeanビューは保存されません。オフラインプロファイリングの場合は、 Controller APIや「MBeanスナップショットを保存」トリガーアクションを使って、プログラムからMBeanスナップショットを取得できます。

Controller APIとトリガーアクションの両方で、ビューセレクターに表示されるオプションのラベルや、含めるMBeanを絞り込むための正規表現を指定できます。