【えーぴーえむ】

APM(アプリケーション性能管理) とは?

💡 アプリの健康診断、遅さの原因を見つけ出すドクター
📌 このページのポイント
APM(アプリケーション性能管理)の仕組み リクエストの処理経路をトレースして計測 ユーザー API Gateway 12ms App Server 85ms Database 450ms ! 外部API 30ms 分散トレース(ウォーターフォール表示) 合計: 577ms Gateway 12ms App 85ms DB 450ms ← ボトルネック 外部API 30ms どこに時間がかかっているかを可視化 → パフォーマンス改善に活用
APMによる分散トレースとボトルネック特定
ひよこ ひよこ

APMって普通のモニタリングとどう違うの?

ペンギン先生 ペンギン先生

サーバーCPUやメモリを見るインフラ監視に対して、APMは「アプリケーションの中身」を見るんだ。1つのリクエストがどのAPIを通って、DBに何ms かかって、という詳細がわかるよ。

ひよこ ひよこ

どうやってそんな詳細がわかるの?

ペンギン先生 ペンギン先生

アプリにAPMのエージェント(SDK)を組み込むんだ。すると各処理の所要時間が自動で計測されて、「このSQLクエリに500msかかっている」みたいなボトルネックが見えるようになるよ。

ひよこ ひよこ

分散トレーシングっていうのも関係あるの?

ペンギン先生 ペンギン先生

まさにAPMの中核機能の一つだよ。マイクロサービスだとリクエストが複数のサービスをまたぐから、全体の処理経路を1本の線として追跡できる分散トレーシングが必須なんだ。

ひよこ ひよこ

どのくらいのチームが使っているものなの?

ペンギン先生 ペンギン先生

本番環境でWebサービスを運用しているチームならほぼ必須と言えるよ。「なんか遅い」と言われたとき、APMがないと勘に頼るしかなくなるからね。導入コストは高めだけど、障害対応の時間短縮効果を考えると十分元が取れるツールだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「APM」って出てきたら「アプリの速度や安定性をリアルタイムで監視する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Application Performance Management」 = アプリケーション性能管理
💬 Application Performance Monitoringと呼ばれることもあって、ManagementとMonitoringの両方の意味で「APM」と略されるよ。
← 用語集にもどる