Trace Waterfall内のAlways-On Profiling

APM Waterfall ビューでオリジナルの Trace & Span (1)(または類似のもの)を選択し、右側のペインから**Memory Stack Traces (2)**を選択してください:

profiling from span profiling from span

ペインに Memory Stack Trace Flame Graph **(3)**が表示されます。スクロールするか、ペインの右側をドラッグして拡大できます。

AlwaysOn Profiling は、アプリケーションのコードのスナップショット、つまりスタックトレースを常に取得しています。何千ものスタックトレースを読まなければならないことを想像してみてください!それは現実的ではありません。これを支援するために、AlwaysOn Profiling はプロファイリングデータを集約して要約し、Flame Graphと呼ばれるビューで Call Stacks を探索する便利な方法を提供します。これは、アプリケーションからキャプチャされたすべてのスタックトレースの要約を表します。Flame Graph を使用して、パフォーマンスの問題を引き起こしている可能性のあるコードの行を発見し、コードに加えた変更が意図した効果を持っているかどうかを確認できます。

Always-on Profiling をさらに詳しく調べるには、Memory Stack Tracesの下の Profiling Pane で上の画像で参照されている Span **(3)**を選択してください。これにより、Always-on Profiling のメイン画面が開き、Memory ビューがあらかじめ選択されています:

Profiling main Profiling main

  • Time フィルタは、選択したスパンの時間枠に設定されます (1)
  • Java Memory Metric Charts **(2)**では、Heap MemoryのモニターMemory Allocation RateGarbage Collecting Metrics などのApplication Activityを確認できます。
  • スパン **(3)**に関連するメトリクスと Stack Traces のみにフォーカス/表示する機能。これにより、必要に応じて Java アプリケーションで実行されているバックグラウンドアクティビティをフィルタで除外できます。
  • 識別された Java Function calls **(4)**により、その関数から呼び出されたメソッドにドリルダウンできます。
  • プロファイルされたサービスのスタックトレースに基づく階層の視覚化を持つ Flame Graph (5)
  • サービスが複数のバージョンを起動する場合に備えて、Service instance **(6)**を選択する機能。

さらなる調査のために、UI ではスタックトレースをクリックして、呼び出された関数と、フレームチャートから関連する行を確認できます。これを使用して、コーディングプラットフォームで実際のコードの行を表示できます(もちろん、お好みのコーディングプラットフォームによって異なります)。