Skip to content
Latchkey

APMとは?アプリケーションパフォーマンス監視を解説

APM、すなわちApplication Performance Monitoringは、アプリケーションを計装して、その本番環境でのパフォーマンスと動作をコードのレベルで理解する取り組みです。

APMは、インフラのメトリクスからアプリケーション自体へと焦点を絞り込みます。どのendpointが遅いか、どのデータベースクエリが高コストか、エラーがどこから来るか、そしてリクエストがサービス間をどう流れるか。これは自分自身のコードを本番環境で観測可能にする規律であり、まさにそれを行うために作られたツールのカテゴリーです。

APMが測定するもの

APMはアプリケーションレベルのシグナルを追跡します。リクエストのスループットとレイテンシ、エラー率、個々のトランザクションのパフォーマンス、そしてデータベースや外部APIといった依存関係の動作です。そのねらいは、アプリケーションが内側からどう動作するかを、開発者が自分のコードとして認識できる用語で見ることです。

tracingとコードレベルの可視性

ほとんどのAPMツールは分散tracingに依存して、サービスをまたいでリクエストを追跡し、時間がどこで費やされているかを特定します。多くはコードレベルの詳細も提供し、トランザクション内の遅いメソッドやクエリを示します。これにより「このendpointは遅い」が「この特定の呼び出しが原因だ」に変わります。

トランザクションと依存関係

APMはアクティビティをトランザクション(1つのHTTPリクエストの処理など)にまとめ、それぞれを実行した操作に分解します。サービスの依存関係をマッピングするため、あるコンポーネントの遅延がどう伝播するかを見られます。これは分散システムのパフォーマンスを理解するうえで不可欠です。

APMとdeploy

APMはdeployを監視するうえで重要な部分です。テレメトリにreleaseバージョンをタグ付けすることで、変更の前後でレイテンシとエラー率を比較し、あらゆるリグレッションをdeployに帰属させられます。これはカナリア分析やdeploy後チェックが依拠するデータです。

APMツール

一般的なAPM製品には、Datadog APM、New Relic、そしてOpenTelemetryの上に構築されたオープンなアプローチがあります。計装の労力やコストはさまざまですが、すべてが同じ目標を目指しています。アプリケーションのランタイムの動作を読み取れるようにし、パフォーマンスの問題を見つけて修正できるようにすることです。

重要なポイント

  • APMは本番環境でのアプリケーションパフォーマンスをコードレベルで洞察します。
  • ボトルネックを特定するために分散tracingに大きく依存します。
  • アクティビティをトランザクションにまとめ、依存関係をマッピングします。
  • テレメトリをreleaseごとにタグ付けすることで、APMはdeployを検証できます。

関連ガイド