APM(Application Performance Monitoring)
アプリケーション性能監視
APMはアプリケーションのパフォーマンスと可用性を監視する手法。 分散トレース、エラー追跡、プロファイリング、リアルユーザー監視(RUM)などを統合し、 問題の根本原因を特定します。
APMの構成要素
分散トレース
リクエストがサービス間をどう流れるか追跡。 ボトルネックの特定、依存関係の可視化。
エラー追跡
例外、エラーを収集・グループ化。 スタックトレース、影響範囲の把握。
プロファイリング
CPU、メモリ使用の内訳。 どの関数が遅いか、メモリリークの検出。
RUM(Real User Monitoring)
実際のユーザー体験を計測。 ページロード時間、Core Web Vitals。
APMが解決する問題
「なぜこのリクエストは遅いのか?」
→ 分散トレースで各サービスの処理時間を可視化。DBクエリが遅い、外部API待ちなど特定。
「このエラーはどこで発生している?」
→ エラー追跡でスタックトレース、発生頻度、影響ユーザー数を把握。
「デプロイ後にパフォーマンスが劣化した?」
→ デプロイマーカーと連携し、前後のレイテンシ・エラー率を比較。
「サービス間の依存関係は?」
→ サービスマップで呼び出し関係、レイテンシ、エラー率を可視化。
主要APMツール
Datadog APM
フルスタックの可観測性プラットフォーム。メトリクス、ログ、トレースを統合。 自動計装、サービスマップ、RUM対応。
特徴: 統合UI、豊富なインテグレーション、SaaS
New Relic
APMの老舗。Full-Stack Observability。エージェントベースの自動計装。 無料枠あり(100GB/月)。
特徴: 成熟したエコシステム、NRQL(独自クエリ言語)
Dynatrace
AI駆動の自動検出。OneAgent一つで全てを監視。 根本原因分析(Davis AI)が強み。
特徴: AI/ML、自動発見、エンタープライズ向け
Elastic APM
ELK Stackと統合。オープンソース(Basic)とマネージド(Elastic Cloud)。 既存のElasticsearch環境に追加しやすい。
特徴: ELK統合、セルフホスト可能
OSS vs SaaS
OSS(セルフホスト)
- • Jaeger: 分散トレーシング
- • Zipkin: 軽量トレーシング
- • SigNoz: DatadogのOSS代替
- • Grafana Tempo: トレースストレージ
メリット: コスト、データ主権、カスタマイズ
SaaS(マネージド)
- • Datadog: フルスタック
- • New Relic: APM特化
- • AWS X-Ray: AWS統合
- • GCP Cloud Trace: GCP統合
メリット: 運用不要、スケール、サポート
OpenTelemetry(OTel)
ベンダー非依存のテレメトリ標準。トレース、メトリクス、ログを統一的に収集。 CNCFプロジェクト。どのAPMツールにも送信可能。
OpenTelemetryアーキテクチャ
SDK
アプリに組み込み。自動/手動計装。
Collector
データ収集・変換・エクスポート。
Protocol (OTLP)
標準転送プロトコル。gRPC/HTTP。
SRE/インフラ観点
導入のポイント
- • サンプリング: 全トレースを保存するとコスト爆発。1-10%が目安
- • 計装: 自動計装から始め、必要に応じて手動計装を追加
- • コンテキスト伝播: 全サービスで一貫して実装
コスト管理
- • トレースは高コスト(スパン数 × 属性数)
- • エラーのみ100%保存、正常は低サンプリング
- • 保持期間を短く(7-14日)