アプリケーションパフォーマンス監視(APM)の理解

アプリケーションパフォーマンス監視(APM)の理解
アプリやWebサイトを使用しているときに、読み込み時間が遅かったりエラーが発生したりした経験はありませんか?こうした問題がなぜ起こるのか、そしてどのように対処すればよいのかを知りたいと思うかもしれません。そこで登場するのが、アプリケーションパフォーマンス監視(APM)です。これは、Webサイトの読み込み時間からアプリのパフォーマンスまであらゆるものを監視し、アプリがスムーズに動作して素早く読み込まれるようにするためのツール群です。
それでは、APMとは何か、どのように機能するのか、そしてその重要性、メリット、課題について詳しく見ていきましょう。
APM(Application Performance Monitoring)とは?
アプリケーションパフォーマンス監視(APM)とは、ITプロフェッショナルがソフトウェアアプリケーションのパフォーマンスと可用性を監視するために設計されたツールを使用する実践のことです。これは、アプリが健全で期待どおりに動作していることを確認するための定期的なアプリの健康診断のようなものです。
APMを使用すると、ITチームは次のことができます:
アプリをスムーズに稼働させ続ける
ユーザーが気づく前に問題を発見して修正する
ユーザーのインタラクションと行動を理解する
アプリのパフォーマンスを最適化する
アプリケーションパフォーマンス監視は、アプリケーションパフォーマンス管理の一部であり、これらの用語はしばしば同じ意味で使用されます。ただし、APMはアプリケーションのパフォーマンスの追跡のみに焦点を当てる一方、APMgはライフサイクル全体を通じてアプリケーションパフォーマンスを制御および管理することに焦点を当てます。言い換えれば、監視は管理の一部です。
アプリケーションパフォーマンス監視の仕組み
APMとは何かを確認したところで、次にその仕組みを分解して見ていきましょう。APMは、アプリのパフォーマンスを理解するためにさまざまな種類の情報を収集します。APMは主に3つのコンポーネントで構成されています:
監視
トレーシング
分析
How APM works.png
APMの仕組み
監視
監視はAPMの基盤であり、アプリケーションパフォーマンスを理解するために、さまざまなソースからデータを収集して分析します。監視にはいくつかの重要なコンポーネントがあります:
データ収集
メトリクス
リアルタイムアラート
データ収集
データ収集は、監視プロセスの出発点です。APMツールは、アプリケーションのコード内に埋め込まれたスクリプトを使用して、サーバー、データベース、API、ユーザーインターフェース(UI)など、さまざまなソースからリアルタイムデータを継続的に収集します。データには、CPU使用率やメモリ消費量などのシステムメトリクスやアプリケーションログ、応答時間やエラー率などが含まれる場合があります。
メトリクス
データが収集されると、次のステップは最も関連性の高いメトリクスに焦点を当てることです。APMツールは、アプリケーションのパフォーマンスを明確に示すさまざまなメトリクスを監視します。これらのメトリクスには次のものが含まれます:
パフォーマンスメトリクス:
応答時間: アプリケーションがユーザーのリクエストに応答するまでにかかる時間。
エラー率: エラーによって失敗したリクエストの割合を追跡し、安定性の問題を特定するのに役立ちます。
スループット: アプリケーションが特定の期間(例: 1秒あたり)に処理するリクエスト数を指します。このメトリクスは、アプリケーションの処理能力を評価するのに役立ちます。
リソース使用量メトリクス:
CPU使用率: CPU使用率の監視は不可欠です。使用率が高いとパフォーマンスの問題につながる可能性があるためです。
メモリ使用量: メモリ使用量を観察することで、メモリ割り当てにおけるメモリリークを特定するのに役立ちます。
ビジネスメトリクス:
トランザクション成功率: これは、購入やフォーム送信など、成功したトランザクションの割合を測定します。このメトリクスの低下は、ビジネスに直接影響する問題を示している可能性があります。
コンバージョン率: 訪問者を顧客に変えることなど、全体的なパフォーマンスやユーザー体験(UX)に直接関連する、アプリケーションが目標をどれだけ達成しているかを監視します。
Apdexスコア: 応答時間に基づいてユーザー満足度と許容度を測定します。
リアルタイムアラート
リアルタイムアラートはAPMの重要な機能です。アプリケーションに問題が発生したり、パフォーマンスが低下したりしたときに通知します。管理者はメトリクスに基づいてカスタムアラートを設定できます。たとえば、応答時間が2秒を超えた場合、アラートで運用チームに通知できます。アラートはメール、SMS、または統合された通知システムを介して送信されます。これにより、運用チームは問題を修正し、ユーザーへの影響を最小限に抑え、アプリケーションの安定性を維持できます。
トレーシング
トレーシングは、リクエストがアプリケーション内をどのように移動するかを理解するのに役立ちます。ネットワーク化されたアーキテクチャとマイクロサービスにより、アプリケーションが複雑になるにつれて、速度低下の特定とシステムの安定性維持においてトレーシングが重要になります。これには以下が含まれます。
トランザクショントレーシング
分散トレーシング
原因分析
トランザクショントレーシング
トランザクショントレーシングは、ユーザートランザクションやリクエストがアプリケーション内を移動する過程を追跡します。
ユーザーが何かを実行してから結果を見るまでの各ステップを記録します。
各ステップにかかる時間を測定します。
これにより、アプリのどの部分が処理を遅くしている可能性があるか、またトランザクション中にどこでエラーが発生しているかを見つけるのに役立ちます。
分散トレーシング
分散アーキテクチャまたはマイクロサービスアーキテクチャでは、リクエストは完了する前に複数のサービスを通過することがよくあります。分散トレーシングは以下を行います。
リクエストがこれらのさまざまなサービス間を移動する際に追跡します。
サービスがどのように連携しているかを示します。
アプリの異なる部分の間で発生する問題を見つけるのに役立ちます。
原因分析
トレーシングは、パフォーマンスデータとエラーログを関連付けることで、問題の根本原因を見つけるのに役立ちます。ログは、アプリケーション内で発生するイベントやエラーのテキストベースの記録です。たとえば、ピークトラフィック時に応答時間が増加する場合、トレーシングによって、データベースが低速なクエリ応答で過負荷になっていることが示される可能性があります。これには以下が含まれます。
コードレベルの問題: 遅いデータベースクエリ、非効率なコード、その他のコード関連の問題を分析すること。
インフラストラクチャの問題: ネットワーク停止、サーバー過負荷、その他のインフラストラクチャの問題を特定すること。
設定エラー: 誤設定されたサービス、不適切なキャッシュ設定、その他の設定上の問題を把握すること。
問題が解決された後、トレーシングデータは、何が問題だったのか、そしてそれが再発しないようにする方法を調査するために使用されます。
分析
分析はAPMの最後のコンポーネントであり、システムが上記のプロセスから収集したデータを有用な情報に変換する部分です。分析は、単なるリアルタイムの追跡と監視よりも、トレンド、ユーザー体験、最適化の機会についてより完全な理解を提供します。
レポートと可視化
APMツールはレポート作成と可視化を提供し、チームがパフォーマンスデータを表示することで、アプリケーションの状態を理解するのに役立ちます。アプリケーションのパフォーマンスが時間の経過とともにどのように変化するかを示すチャートやグラフを作成し、重要な情報を要約して素早く概要を把握できるようにします。また、パフォーマンスデータを使用して、日次、週次、または月次でレポートを提供します。
ユーザー体験(UX)
アプリケーションパフォーマンスにおいて最も重要な要素の1つがUXです。APMツールは、ページ読み込み、応答時間、ユーザーがアプリケーション内をどのように移動するかといったユーザー体験メトリクスを追跡できます。リアルユーザーモニタリング技術は実際のユーザー操作からデータを収集し、このデータはアプリケーションのどの部分に改善が必要かを特定するのに役立ちます。
比較
Application Performance Management(APM)という用語は、他の概念と同じ意味で使われることがありますが、ObservabilityやInfrastructure Monitoringと比較する際には、その独自の焦点を区別することが重要です。それでは、それぞれの用語の違いを見てみましょう。
Application Performance Management(APM) vs. Observability
Application Performance Monitoring(APM)とObservabilityは関連する概念ですが、アプリケーションのパフォーマンスを管理し理解するうえで異なる目的を果たします。
APM vs Observability.png
APM とオブザーバビリティ
APM の主な目的は、アプリケーションの可用性とパフォーマンスを監視することです。応答時間、エラー率、リソース使用量などの特定のメトリクスを追跡し、個々のアプリケーションのパフォーマンスを維持・最適化します。
オブザーバビリティ は、APM がカバーしない可能性のあるものも含め、システム全体を理解することを目的としています。メトリクス、ログ、トレース、イベントなどのデータを収集・分析し、システムの挙動を理解します。これは、システムが複雑で分散しており、より深い検査を必要とする LLM application のような大規模アプリケーションで特に有効です。
Langfuse や Ragas のようなプラットフォームは、大規模言語モデル(LLM)上に構築されたアプリケーションに対して、その特定の要件に適した包括的なオブザーバビリティとプロダクト分析を提供します。
Langfuse はオープンソースプラットフォームです。そのオブザーバビリティ機能は、Milvus や Zilliz Cloud(マネージド Milvus)ソリューションなどの vector databases とシームレスに統合でき、vector embedding の品質と関連性を監視することで、retrieval-augmented generation (RAG) ワークフローを強化します。
Langfuse のオブザーバビリティ機能を Zilliz Cloud のベクターデータベースおよび Milvus とアプリケーションに統合する方法については、以下のリソースを参照してください。
Application Performance Management (APM) とインフラストラクチャ監視の比較
APM とインフラストラクチャ監視はどちらも、組織の IT 環境の健全性とパフォーマンスを維持するうえで重要ですが、IT スタックの異なるレイヤーを対象としています。
これまで詳しく見てきたように、APM はアプリケーション中心であり、パフォーマンスと availability. に焦点を当てています。応答時間、エラー率、トランザクションフローなどの重要なメトリクスを監視し、アプリケーションを改善してより良いユーザー体験を確保します。
一方、インフラストラクチャ監視はシステム中心であり、アプリケーションを支えるハードウェアおよびソフトウェアコンポーネントに焦点を当てます。サーバー、ネットワーク、その他のインフラストラクチャコンポーネントの健全性を維持します。インフラストラクチャ監視ツールは、アプリケーションのパフォーマンスに影響が及ぶ前に、チームがシステムレベルの問題を検出して対処するのに役立ちます。インフラストラクチャ監視ツールには、Prometheus や Datadog など、さまざまなツールが使用されます。
APM のメリットと課題
ここまで APM の重要な側面を取り上げてきましたが、他のテクノロジーソリューションと同様に、APM にも機会と課題があることを理解する必要があります。APM ツールはアプリケーションのパフォーマンスとユーザー体験の向上に役立ちますが、複雑さやデータ管理の課題も伴います。APM には 4 つの主なメリットがあります。
より良いユーザー体験: パフォーマンスメトリクスを監視することで、チームはエンドユーザーに影響が及ぶ前にパフォーマンス問題を検出して解決でき、高いサービス品質の維持に役立ちます。
ダウンタイムの削減: APM により、大規模な停止を引き起こす前に問題を発見して修正できます。リアルタイムの監視とアラートにより、問題が発生した時点でチームに通知され、アプリケーションの可用性への影響を最小限に抑えます。
より良い意思決定: APM は、企業が時間をかけて製品を改善し、システムアーキテクチャやリソース配分について情報に基づいた意思決定を行うのに役立つ情報を提供します。
コスト削減: APM は、非効率性を見つけることで、企業がアプリの運用コストを削減するのに役立ちます。
それでは、APM の課題を見てみましょう。
実装の複雑さ: APM の実装は、特に分散システムやマイクロサービス環境では複雑になる可能性があります。関連するすべてのコンポーネントを監視するように APM ツールを設定するには、多くの時間と経験が必要になる場合があります。
データ過多: APM は非常に多くの情報を生成する可能性があり、管理や分析が圧倒的になることがあります。適切なフィルタリングと優先順位付けがなければ、何が重要なのかを判断するのが難しい場合があります。
APM ツールのコスト: 高品質な APM ツールは、特に小規模企業やスタートアップにとって高額になる可能性があります。コストには、ツール自体だけでなく、実装やスタッフのトレーニングに必要なリソースも含まれます。
メトリクスの関連性の維持: アプリケーションが変化するにつれて、一部のメトリクスは関連性が低くなる場合があります。APM の効果を維持するために、チームは監視対象を常に更新し改善しなければならず、これには時間がかかる可能性があります。
スキル要件: APM ツールを効果的に使用するには、専門的な知識とスキルが必要です。チームは、APM ツールが提供するデータを設定し、解釈し、それに基づいて行動する方法を理解する必要があり、追加のトレーニングが必要になる場合があります。
APM のユースケース
アプリケーションパフォーマンス監視 (APM) は、多くの異なる業界で価値のあるツールであり、企業が顧客や業界向けのデジタルサービスを改善するのに役立ちます。これには以下が含まれます。
E-commerce: オンラインショッピングでは速度と信頼性が重要です。顧客は、ウェブサイトがすばやく読み込まれ、取引がスムーズであることを望んでいます。わずかな遅延でも大きな売上損失につながる可能性があります。たとえば、ブラックフライデーの店舗では、顧客が突然殺到し、ウェブサイトが遅くなったりクラッシュしたりする可能性があります。APM ツールはこれを検知し、顧客に問題が起きないように、追加のトラフィックに対応できるようウェブサイトを準備できます。
Finance/Banking: ユーザーは、自分の取引が正確かつ遅延なく処理されることを信頼できなければなりません。APM は、すべての取引が安全、迅速、かつエラーなく処理されることを保証します。
Gaming: ゲームではパフォーマンスがすべてです。プレイヤーは、遅延なくスムーズに動作するゲームを望んでいます。APM ツールは、フレームレートやサーバーレイテンシなどのメトリクスを追跡しながら、ゲームのパフォーマンスをリアルタイムで監視します。これにより、開発者はゲームがゲーマーに一貫した楽しい体験を提供することを保証できます。
New Relic、Dynatrace、Grafana などの監視プラットフォームが一般的に使用されています。New Relic は、アプリケーションとインフラストラクチャのパフォーマンスに関するリアルタイムのインサイトを提供し、APM、インフラストラクチャ監視、ログ管理など、さまざまな監視機能を提供します。
これらのプラットフォームによって収集されたパフォーマンスデータは、ベクトル埋め込みの形式で十億規模の複雑なデータを効率的に処理するように設計された Zilliz Cloud に送信できます。このような組み合わせにより、データを簡単に探索し、コンテキストを理解し、問題をより迅速に解決できるインタラクティブな可視化が提供されます。そのアラートは主要なパフォーマンスメトリクスの変化を検出し、注意が必要なときに通知します。
Grafana は、すべてのデータソースに接続できるオープンソースの可視化スタックです。メトリクスを取得することで、ユーザーが大量のデータを理解、分析、監視するのに役立ちます。Milvus は、メトリクスの可視化に Grafana のカスタマイズ可能なダッシュボードを使用します。
よくある質問 (FAQ)
- APM (アプリケーションパフォーマンス監視) とは何ですか?
アプリケーションパフォーマンス監視(APM)は、ITプロフェッショナルがソフトウェアアプリケーションのパフォーマンスと可用性を監視するのに役立つよう設計されたツールを使用します。
- アプリケーションパフォーマンス監視は何に使用されますか?
アプリケーションパフォーマンス監視は、パフォーマンスの問題を特定して解決し、ユーザー体験を向上させ、ダウンタイムを最小限に抑え、リソース効率を最大化します。
- オブザーバビリティとAPMの違いは何ですか?
APMは、個々のアプリケーションのパフォーマンスを維持および最適化するために設計されたツールです。一方、オブザーバビリティは、APMではカバーできない可能性のある側面を含め、システム全体を理解することに関するものです。
- APMメトリクスとは何ですか?
アプリケーションパフォーマンス監視(APM)エージェントは、アプリケーションとインフラストラクチャから重要なメトリクスを収集して統合し、ITチームまたはDevOpsチームが、ビジネス成果に悪影響を及ぼす前に機能上の問題を特定して修正できるようにします。
- APMはどのように機能しますか?
アプリケーションパフォーマンス監視(APM)は、アプリケーションパフォーマンスメトリクスを監視し、トランザクションをトレースし、データを分析して問題や傾向を特定することで機能します。


