APM:定義、メトリクス、そして仕組み

著者: IT Sectr 公開日: 2026-05-29 読了時間: 8 分

APM (Application Performance Monitoring) は、メトリクス収集、リクエストトレーシング、実時間エラー診断を含む、ソフトウェアのパフォーマンスを監視するための総合的なアプローチです。Gartner IT Glossary, 2024によると、APMは以下の3つの重要領域を組み合せています:ユーザーエクスペリエンス監視、アプリケーションアーキテクチャの障害検知、およびインシデントの深层診断のための実行データ分析です。

まとめ

  • APM — Application Performance Monitoring、クライアント、ネットワーク、サーバー、インフラストラクチャのすべてのレベルでアプリケーションパフォーマンスを視察するシステムです。
  • APMの3つの柱 — メトリクス、トレーシング、ログが統合され、エンドツーエンドのインシデント分析のための統一オブザービリティプラットフォームです。
  • エージェントベースAPM — 詳細なランタイムデータを収集するためにアプリケーションサーバーにソフトウェアエージェントをインストールする方法です。
  • サービスマップ — トレーシングデータから自動的に構築されるマイクロサービス間の依存関係グラフです。
  • Apdexスコア — アプリケーションの応答時間に対するユーザー満足度の標準化された指標です。

開発におけるAPMとは

APM (Application Performance Monitoring) は、ソフトウェアの動作データの収集、視覚化、分析を含むアプリケーションパフォーマンス管理の分野です。個々のメトリクス(CPU、メモリ)のポイント監視とは異なり、APMはホリスティックな視点を提供します:ユーザーの視点からのアプリケーションの動作、コンポーネントの相互作用、ボトルネックの発生場所です。

APMの概念は2010年代に、モノリスシステムからマイクロサービスアーキテクチャへの移行に伴って生まれました。サービスの数が10~15ユニットを超えると、伝統的な監視方法は機能しなくなりました—何らの特定のサービスがリクエスト全体を遅くさせているかを特定することが不可能だったからです。APMソリューションは、ディストリビューテッドトレーシングと自動サービスマップ構築によってこの問題を解決しました。

Grand View Research (2024)によると、APM市場は82億米ドルと評価され、年間11.5%の割合で成長しています。主な推進要因は、クラウドヘの移行、マイクロサービスの増加、モバイルアプリおよびウェブサービスにおけるユーザーエクスペリエンスの品質への要求の高まりです。

APMの3つの柱:メトリクス、トレーシング、ログ

現代のAPMは、アプリケーションの状態の完全な画像を形成する、3つのタイプのデータに基づいています。メトリクスは数値統計です:応答時間、リクエスト数、エラー率。これらは「何が起こっているか」という問いに答え、スレッショルド値に基づいてアラートを設定できます。

絆としてのトレーシング

トレーシング(ディストリビューテッドトレーシング)は「なぜこれが起こっているのか」という問いに答えます。各入力リクエストは、すべてのマイクロサービス、データベース、外部コールを跡だってトレースされます。APMシステムはメトリクスとトレーシングを組み合せます:応答時間のメトリクスが上昇した場合、開発者はトレースダッシュボードに移動し、各サービスごとに内訳された、遅延を引き起こした正確なリクエストを確認できます。

深さのためのロギング

ログは文脈を提供します—特定のエラーメッセージ、変数の値、コールスタックなどです。現代のAPMプラットフォーム(Datadog、New Relic、Grafana)は、共通のtrace_idを通じてログとトレースを連結し、メトリクグラフから特定のリクエストログへの移動を可能にします。Datadog (2025)によると、ログとトレースの相関関係により、インシデントの平均診断時間が45分から12分に縮小されます。

シグナル問い単位
メトリクス何が起こっているか?数値統計
トレーシングなぜこれが起こっているのか?Spansとtraces
ログ正确に何が悪かったのか?テキスト記録

APMアーキテクチャ:エージェントとコレクタ

クラシックなAPMアーキテクチャは、3つのレベルから構成されます:エージェント、コレクタ、バックエンドです。エージェントは、アプリケーションに組み込まれたライブラリ、またはその横で実行されるライブラリ(サイドカー)です。エージェントは入力と出力のコールを拦って、ランタイムデータを収集し、安全なチャネルを通じてコレクタに送信します。

APMエージェントの仕組み

Java用APMエージェントは、JVMレベルでjavaagentを通じて接続し、すべてのHTTPリクエスト、データベースコール、メッセージキュー、外部APIを自動的にインストゥルメンティングできます。モバイルプラットフォームでは、エージェントはSDKとして接続し、デバイスからメトリクスを収集します。Android用のNew Relic Agentは、例えばOkHttp、HTTPクライアント、WebViewを通じてすべてのネットワークリクエストを自動的にトレースします。

java
import com.newrelic.agent.android.NewRelic;

public class MainApplication extends Application {
    public void onCreate() {
        super.onCreate();
        NewRelic.withApplicationToken("YOUR_TOKEN")
            .start(this);
    }
}

このコードは、AndroidアプリケーションでNew Relic Agentを初期化します。起動後、エージェントは各画面の追加のインストゥルメンテーションなしに、ネットワークリクエストメトリクス、エラー、ANR、UIパフォーマンスデータを自動的に収集します。エージェントはバックグラウンドスレッドで実行され、主なアプリケーションインターフェイスのパフォーマンスに影響を与えません。

コレクタとバックエンド

コレクタは数千のエージェントからデータを受信し、メトリクスを凝集し、トレースのサンプリングを行い、ホットストレージとコールドストレージの両方で長期保存します。APMバックエンドは、ダッシュボード、アラート、サービスマップ、および外部システム(Slack、PagerDuty、Jira、ServiceNow)との統合のためのAPIを提供します。Datadogは、20か国以上の地域に設置されたコレクタを通じて、秒間で千万点以上のデータを処理し、最小限の送信遅延を実現しています。

ApdexスコアとSLA監視

Apdex (Application Performance Index) は、アプリケーションの応答時間に对するユーザー満足度を測るためのオープン標準です。Apdex値は次の式で計算されます:(満足しているユーザー数 + 容忍できるユーザー数 / 2)/ 総ユーザー数。結果は0から1の数値で、1はすべてのユーザーが満足していることを意味します。

Apdexのスレッショルドは、アプリケーションごとに個別に設定されます。モバイルアプリの場合、通常の満足スレッショルドは応答時間が1.5秒まで、容忍できるのが4.5秒までです。4.5秒を超えるものは、受け入れられないとみなされます。Apdexスコア0.94以上は、プロダクション環境において優れているとみなされます。

Apdexは、質のメトリクスだけでなく、アラートのスレッショルドとしても使用されます。Apdexが10分間にわたって0.85を下回った場合、APMシステムは当番チームに通知を送信します。これは、時間帯や負荷によって変動する可能性のある絶対値の応答時間に依存するよりも、よりバランスの取れたアプローチです。

モバイルアプリのためのAPM

モバイルAPMには独自の特徴があります:アプリはユーザーのデバイスで動作し、ネットワーク環境や空いたメモリ量、OSバージョンが異なります。モバイルAPMは、これらのすべての要因を考慮し、デバイスモデル、OSバージョン、地域、ネットワーク運営会社ごとにメトリクスを内訳して提供する必要があります。

デバイスからのデータ収集

モバイルAPMエージェントは、デバイス上でメトリクスを収集し、1~5分ごとに一括送信します。これにより、ユーザーのトラフィックへの影響を最小限に歱えます。接続が切れた場合、データはローカルキャッシュに保存され、次回接続時に送信されます。Firebase PerformanceDynatrace Mobileは、ネットワーク要失時の自動再送信をサポートしています。

主なモバイルメトリクス

標準のAPMメトリクスに加え、モバイル開発では独自のメトリクスが追加されます:コールドスタート時間、スクロール時のFPS、メモリ消費量、ANR頻度(Android)、およびウォッチドッグ終了回数(iOS)です。New Relic Mobileはさらに、マップビュー、キャッシュ使用率、特定のViewControllerのレンダリング時間をトレースします。

swift
import NewRelic

class ProfileViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        NewRelic.startInteraction(withName: "ProfileView")
    }

    override func viewDidDisappear(animated: Bool) {
        super.viewDidDisappear(animated)
        NewRelic.stopCurrentInteraction()
    }
}

Swiftのコードは、ユーザープロフィール画面のためのインタラクショントレースを作成します。New Relicは、この画面が表示されている間に実行された、データ読み込み時間、UIレンダリング、およびすべてのネットワークリクエストを自動的に測定します。

主要なAPMプラットフォームの比較

APM市場には、監視の深さ、コスト、サポートされるプラットフォームによって異なる数十のソリューションがあります。Datadog APMは、メトリクス、トレース、ログを単一インターフェイスで統合する点でリーディングしています。New Relicは、モバイルプラットフォームに対して最も詳細なトレーシングを提供します。Dynatraceは、Davis AIエンジンを使用してルートコースを自動検出します。

プラットフォームモバイルエージェントディストリビューテッドトレーシング無料プラン
DatadogiOS, Androidありなし
New ReliciOS, Androidあり100 GB/月
DynatraceiOS, Androidあり15日間
GrafanaOpenTelemetry経由ありあり (OSS)

APMプラットフォームの選択は、チームのサイズ、技術スタック、予算によって異なります。スタートアップには、バックエンド用のGrafanaと組み合わせたFirebase Performanceが最適です。高いSLA要件を持つエンタープライズプロジェクトには、完全なオブザービリティツールとAIドライブンのルートコース解析を備えたDatadogまたはDynatraceが適しています。

よくある質問

APMと一般的なサーバー監視の違いは何ですか?

一般的な監視はインフラストラクチャメトリクス(CPU、メモリ、ディスク)をトレースします。APMはアプリケーションレベルを視たちます:特定のトランザクションの実行時間、SQLクエリ、マイクロサービス間のHTTPコールなどです。APMは、CPUが正常でも、データベースへの遅いクエリによってアプリが遅くなっていることを示せます。

単一のマイクロサービスにAPMは必要ですか?

単一のサービスには、基本的なカバレッジのために標準的な監視 + ロギングで十分です。APMが必要になるのは、サービスが5つ以上あり、単一のユーザーシナリオでリクエストが複数のサービスを経由する場合です。APMは、どの特定のサービスがリクエストの全体のフローを遅くさせているのか、またはボトルネックがどこにあるのかを明らかにします。

APMはインフラコストにどのように影響しますか?

APMエージェントは、サーバーあたり1~3%のCPUと50~200MBのメモリを消費します。ライセンス費用は、ホストあたり月額15〜80ドルです。テレメトリートラフィックは、トレーシングの強度によってホストあたり日籌1~10GBです。OpenTelemetry + Grafanaは、商用APMに対する無料の代替手段です。

バックエンドなしのモバイルアプリにAPMを使えますか?

はい、モバイルAPMエージェントは独立して動作します。アプリにサーバー側がなくても、デバイス上で起動時間、FPS、クラッシュ、第三者APIへのネットワークリクエストなどのメトリクスを収集します。データは、デバイスがインターネットに接続したときにAPMプラットフォームに送信されます。

APM設定はどのくらいの頻度で更新する必要がありますか?

基本的なAPM設定(スレッショルド、ダッシュボード、アラート)は一度設定し、アーキテクチャが変わったり、パフォーマンスベンチマークが更新されたりしたときに調整されます。エージェント設定は、アプリを再リリースしたりコードを変更したりすることなく、APMプラットフォームの管理画面から自動的に更新されます。

まとめ

  • APMは、メトリクス、トレーシング、ログを組み合せた総合的なアプリケーションパフォーマンス監視ソリューションです。
  • ディストリビューテッドトレーシングは、APMが伝統的な監視と異なる主なポイントであり、すべてのマイクロサービスを経由するリクエストのパスを跡どることができます。
  • APMエージェントはアプリに組み込まれ、ランタイムデータ、HTTPリクエスト、データベースコールを自動的に収集します。
  • Apdexスコアは、応答時間のスレッショルドに基づいて計算される標準化されたユーザー満足度メトリクスです。
  • モバイルAPMは、コールドスタート、FPS、ANR、ネットワーク環境、OSバージョンなど、デバイスの特徴を考慮します。
  • OpenTelemetryにより、オープンなデータ収集標準を使用して、ベンダーロックインなしのAPMシステムを構築できます。
  • APMプラットフォームの選択は、プロジェクトの規模によって決定されます:スタートアップにはFirebase、高いオブザービリティ要件を持つエンタープライズアーキテクチャにはDatadogまたはDynatraceが適しています。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください