Splunk APMのAlwaysOn Profilingの概要

AlwaysOn Profiling はスタックトレースを継続的に収集するため、平均解決時間(MTTR)を短縮する方法として、コード内のどの行がシステムの速度低下やクラッシュを引き起こしているのかを検出できます。Splunk APM の一部として、AlwaysOn Profiling は、インストルメンテーションされたアプリケーションによって生成されるスパンにコンテキストを提供します。

AlwaysOn Profiling はスタックトレースを継続的に収集するため、平均解決時間(MTTR)を短縮する方法として、コード内のどの行がシステムの速度低下やクラッシュを引き起こしているのかを検出できます。Splunk APM の一部として、AlwaysOn Profiling は、インストルメンテーションされたアプリケーションによって生成されるスパンにコンテキストを提供します。

Splunk Observability Cloud にプロファイリングデータを取り込んだ後は、APM から直接スタックトレースを調査し、フレームグラフを使用して各コンポーネントのパフォーマンスを視覚化できます。ボトルネックと非効率を視覚的に特定することにより、AlwaysOn Profiling は、アプリケーション コードの動作を理解するのに役立ちます。

AlwaysOn Profiling でできること

以下は、Splunk APMのAlwaysOn Profilingを使用してできることの一部です:

  • アプリケーションの継続的なプロファイリングを実行します。プロファイラは、一度アクティブにすると常にオンになります。

  • コードパフォーマンスコンテキストの収集およびトレースデータとのリンク。

  • アプリケーションのメモリ使用量とガベージコレクションの調査。

  • サービスのパフォーマンスに影響を与えるコードのボトルネックの分析。

  • クラウドリソースのスケールアップの必要性を高める非効率性の特定。

以下は、AlwaysOn Profilingで特定できる典型的な問題の例です:

  • 遅い、または非効率なデータベースクエリ

  • スレッドのロック

  • メモリリーク

  • 異常なメモリ消費

  • スレッドプールの枯渇

  • ファイルシステムのボトルネック

  • 外部サービスへのコールの遅延

サンプルシナリオについては、「Splunk AlwaysOn Profiling を使用したアプリケーションとサービスの監視シナリオ」を参照してください。

メモリプロファイリング

メモリのプロファイリングを行うと、スタックトレースにメモリ割り当てデータを追加し、メモリメトリクスを見えるようにすることで、インストゥルメントしたサービスやアプリケーションのリークや異常な消費パターンを発見することができます。詳細については、「シナリオ:SashaがAlwaysOn Profiling を使用してメモリ使用量を分析する」を参照してください。

Splunk Observability Cloud にプロファイリングデータを取り込んだら、フレームグラフを使って各コンポーネントのメモリ割り当て動作を視覚化できます。詳細については、「フレームグラフを理解し、使用する」を参照してください。

メモリのプロファイリングによって、アプリケーションのメモリメトリクスも見えるようになるため、これを使ってグラフやダッシュボードを作成することができます。詳細については、「メモリプロファイリングのメトリクス」を参照してください。

サポートされている言語

以下のプログラミング言語では、インストルメンテーションが利用できます:

言語

利用可能なインストルメンテーション

ドキュメント

Java

Splunk Distribution of OpenTelemetry Javaバージョン1.14.2以降

OpenJDK のバージョン 15.0 から 17.0.8 までは、メモリプロファイリングに対応していません。詳細については、JDK バグシステムの「https://bugs.openjdk.org/browse/JDK-8309862」を参照してください。

Node.js

Splunk Distribution of OpenTelemetry JSバージョン2.0以降

.NET (OpenTelemetry)

Splunk Distribution of OpenTelemetry .NET 1.3.0以上

AlwaysOn Profiling では、.NET バージョン 6.0 以上がサポートされています。.NET Frameworkはサポートされていません。

Python(ベータ版)

Splunk Distribution of OpenTelemetry Pythonバージョン 1.15以上

CPU プロファイリングのみサポートされています。

AlwaysOn プロファイリングデータを Splunk APM に取り込む

最初に、アプリケーションまたはサービスを Splunk APM用にインストルメントし、AlwaysOn Profilingを有効にします。

詳細については、「Splunk APMのAlwaysOn Profiling にデータを取り込む」を参照してください。