プロファイリングの一側面として、例えば使用ヒープサイズのようなスカラー値の計測値を時間経過とともにモニタリングすることがあります。 JProfiler では、このようなグラフをテレメトリーと呼びます。テレメトリーを観察することで、プロファイルされたソフトウェアの理解が深まり、 複数の計測値にまたがる重要なイベントの相関を確認でき、予期しない挙動に気付いた場合は JProfiler の他のビューでより詳細な解析を行うきっかけになります。
標準テレメトリー
JProfiler UI の「テレメトリー」セクションでは、複数のテレメトリーがデフォルトで記録されます。 インタラクティブセッションでは、常に有効になっています。一部のテレメトリーは、特定の種類のデータが 記録されている必要があります。その場合、テレメトリー内に記録アクションが表示されます。
複数のテレメトリーを同じ時間軸で比較するために、概要では複数の小さなテレメトリーが 任意の行の高さで上下に並べて表示されます。テレメトリーのタイトルをクリックすると、 フルテレメトリービューがアクティブになります。概要でのテレメトリーのデフォルト順序が 必ずしも適切とは限りません。例えば、特定のテレメトリーを並べて相関を確認したい場合などです。 その場合は、ドラッグ&ドロップで概要内の順序を変更できます。
フルビューでは、現在値を示す凡例が表示され、概要よりも多くのオプションが利用できる場合があります。 例えば、「メモリ」テレメトリーでは、個別のメモリプールを選択できます。
JProfiler には、JVM の高レベルなシステムや主要なフレームワークからイベントを記録する プローブが多数用意されています。プローブには対応する プローブビューで表示されるテレメトリーがあります。これらのテレメトリーをシステムテレメトリーと比較したい場合は、 選択したプローブテレメトリーをトップレベルのテレメトリーセクションに追加できます。 ツールバーから テレメトリーを追加→プローブテレメトリー を選択し、1つ以上のプローブテレメトリーを選びます。
追加された各プローブテレメトリーは、テレメトリーセクション内に独自のビューを持ち、 概要にも表示されます。
プローブテレメトリーを追加すると、プローブデータが記録されている場合のみデータが表示されます。 記録されていない場合は、テレメトリーの説明内に記録開始用のインラインボタンが表示されます。
プローブテレメトリーのコンテキストメニューには、記録アクションや対応する プローブビューを表示するアクションが含まれています。
プローブビューと同様に、記録されたオブジェクトの VM テレメトリーもメモリ記録に依存し、 記録ボタンや同様のコンテキストメニューが用意されています。
最後に、「トラッキング」テレメトリーとして、他のビューで選択したスカラー値をモニタリングするものがあります。 例えば、クラス・トラッカービューでは、クラスを選択してそのインスタンス数を時間経過でモニタリングできます。 また、各プローブには「トラッカー」ビューがあり、選択したホットスポットや制御オブジェクトをモニタリングできます。
ブックマーク
JProfiler は、すべてのテレメトリーで表示されるブックマークのリストを管理しています。インタラクティブセッションでは、 ブックマークを追加 ツールバーボタンをクリックするか、 コンテキストメニューの ここにブックマークを追加 機能を使って、 現在時刻にブックマークを追加できます。
ブックマークは手動で作成できるだけでなく、記録アクションによって自動的に追加され、 特定の記録の開始と終了を示します。トリガーアクションやコントローラーAPIを使えば、 プログラムからブックマークを追加することも可能です。
ブックマークには色、線のスタイル、ツールチップに表示される名前があります。 既存のブックマークを編集して、これらのプロパティを変更できます。
テレメトリー内で複数のブックマークを右クリックするのが面倒な場合は、 メニューの プロファイリング→ブックマークの編集 アクションを使って ブックマークの一覧を表示できます。 ここからブックマークを HTML や CSV にエクスポートすることも可能です。
カスタムテレメトリー
独自のテレメトリーを追加する方法は2つあります。JProfiler UI でスクリプトを書いて数値を供給するか、 数値型の MBean 属性を選択するかです。
カスタムテレメトリーを追加するには、「テレメトリー」セクションに表示されている テレメトリーの設定 ツールバーボタンをクリックします。 スクリプトテレメトリーでは、現在の JProfiler セッションのクラスパスに設定されている すべてのクラスにアクセスできます。値が直接取得できない場合は、 アプリケーションに static メソッドを追加して、このスクリプトから呼び出せるようにしてください。
上記の例は、プラットフォーム MBean への呼び出しを示しています。MBean のスカラー値をグラフ化するには、 MBean テレメトリーを使うのが便利です。MBean ブラウザで適切な属性を選択できます。 属性値は数値型である必要があります。
複数のテレメトリーラインを1つのテレメトリーにまとめることができます。 そのため、設定はテレメトリー本体とテレメトリーラインの2つに分かれています。 テレメトリーラインではデータソースとラインのキャプションを編集し、 テレメトリー本体では単位、スケール、積み上げ設定など、 すべてのラインに適用される設定を行います。
積み上げテレメトリーでは、各テレメトリーラインが加算され、エリアグラフとして表示できます。 スケールファクターは、値をサポートされている単位に変換するのに便利です。 例えば、データソースが kB を返す場合、JProfiler には「kB」単位がないため、 スケールファクターを -3 に設定すると値がバイトに変換され、 テレメトリーの単位として「バイト」を選択すれば、JProfiler が自動的に適切な集約単位で表示します。
カスタムテレメトリーは、「テレメトリー」セクションの末尾に、設定した順序で追加されます。 並び替えたい場合は、概要で目的の位置までドラッグしてください。
オーバーヘッドに関する考慮事項
一見すると、テレメトリーは時間とともにメモリを線形に消費するように思えます。 しかし、JProfiler は古い値を統合し、徐々に粗い粒度にすることで、 テレメトリーごとのメモリ消費量を制限しています。
テレメトリーの CPU オーバーヘッドは、値が1秒ごとに1回だけポーリングされることにより抑えられています。 標準テレメトリーでは、このデータ収集による追加オーバーヘッドはありません。 カスタムテレメトリーの場合は、基盤となるスクリプトや MBean によってオーバーヘッドが決まります。

























