アプリケーション(ソフトウェア)を監視して問題を検出し、迅速な解決につなげるAPM(アプリケーションパフォーマンス監視)。顧客の満足度を向上させ、パフォーマンスの低下による顧客離れや収益の損失を回避できることから、企業の間で注目されています。本記事では、APMの監視対象や目的、取得できるデータ、自社に最適なAPMツールを導入するためのポイントなどについて解説します。
APMは、Application Performance Monitoringの略語で、アプリケーション(ソフトウェア)のパフォーマンスを監視して問題を検出し、迅速かつ詳細な調査につなげる手法です。クラウドサービスやサーバーレス、コンテナなどの普及によりアプリケーションの構成はより複雑になり、これまでのメトリクスやログベースの監視では状況の確認は困難になっています。今ではアプリケーションのサービス品質を確保するために欠かせないツールとなっています。
システム監視というと、その対象はサーバーやネットワークなどのハードウェア(インフラ)が一般的ですが、APMでは“いくらハードウェアが正常に稼働していても、サービスが正常に利用できなければ意味がない”という考え方のもと、ハードウェア(インフラ)ではなく、その上で動くソフトウェア(Webアプリケーションのトランザクションのレイテンシーやエラー発生状況)を監視します。APMツールによって設計や搭載機能は様々ですが、その目的は、アプリケーションとそのユーザーによって生成される各トランザクションの構成要素すべてのデータを収集し、アプリケーションのあらゆる面について実用的なインサイトを提供することにあります。
各トランザクションのレベルでアプリケーション内での処理や、他のアプリケーション、DB、外部SaaSサービスなどとの通信におけるレイテンシーやエラー発生を取得します。マイクロサービスなど複雑なアーキテクチャにおいて特に有効で、アプリ間の関係性を可視化しトランザクションがどのように遷移し、どこにボトルネックがあるか、どのようなエラーが発生しているかを特定するために利用できます。
トレースは大抵膨大なデータ量になるため、全データを蓄えるのではなくサンプリングをすることが通常です。その結果としてデータ保管コストは抑えられますが、トラブルシューティング時にデータが存在しない可能性がある、稀なイベントに気付きにくいなどの注意点もあります。
APMツールでは、REDメトリクスと総称される3種類のメトリクス(Rate(トランザクションの処理速度)、Error(エラーの発生状況)、Duration(トランザクションの処理にかかった時間))を測定します。このほか、多くのAPMツールは下記のようなメトリクスを収集して、迅速な問題解決につなげます。
ユーザーリクエストに対する応答速度とトランザクションの処理速度から、時間とともに速度が低下していないかを判断します。
各トランザクションのパフォーマンスを測定して詳細を確認することで、パフォーマンス低下の原因を効率的に調査できます。
エラー発生の有無、発生個所、エラーの深刻度などの情報をもとに、トラブルシューティングを効率化し、アプリケーション全体の可用性を評価します。
アプリケーションが決済に要する時間、ログイン件数、ダウンタイムの長さと頻度などのKPIやSLA /SLOなどを満たしているか、を判断します。
APMツールが提供する主なアプリケーション監視の機能として、下記が挙げられます。
アプリケーションを構成するすべてのマイクロサービス・Webサーバー・アプリケーションサーバー・アプリケーションフレームワーク・その他のネットワークプラットフォームを検出してサービスマップにまとめ、ADTD機能で診断します。
パフォーマンスデータを継続的に追跡することで、ユーザー増減、サービスのパフォーマンス低下、基盤となるコードの変更など、環境が変化したときにアプリケーションがSLOを満たしているかどうかを確認できます。アプリケーションがSLOを満たしているか確認する、アプリケーションのトレースやログを分析してインサイトを導出し、問題をピンポイントで特定する、といったことも可能です。
フロントエンド監視はAPMツールとは異なる製品として位置づけられることが多いですが、APMツールとは密接な関係を持っています。一部の製品ではAPMに組み込まれていることもあります。
リアルユーザー監視(Real User Monitoring)ではユーザーの実際のエクスペリエンスを測定でき、提供側から見てカスタマーエクスペリエンスの盲点になりやすいJavaScriptなど、クライアント側のコードも監視することができます。外形監視(Synthetics Monitoring)では定期的にユーザージャーニーをシミュレートすることでユーザーが気づく前に問題を検出でき、また検証環境でテストすることでリリース前にコードの問題をプロアクティブに検出できます。これらのフロントエンド監視とアプリケーション監視を相関付けることでユーザーエクスペリエンスの問題を起点にフロントエンドとアプリケーションの問題切り分けが可能になります。
APMツールでは上記の情報がダッシュボードで統合的にグラフィカルに表示され、各サービスのパフォーマンスとの依存関係の把握と継続的な追跡を支援します。
APMツールの導入は、企業や組織に様々なメリットをもたらします。
最大のメリットは、問題の発生時に、すばやくトラブルシューティングをおこない健全な状態に戻すと同時に、将来の問題の発生を予測して防止することにより、SLOが維持できることです。
アプリケーションやサービスの問題の発生を最小化し、顧客がほかのアプリケーションやサービスに移ってしまうのを防ぎ、収益の拡大に貢献します。
APMツールを用いることで、俊敏にアプリケーションを最適化でき、競争力の強化につながります。
アプリケーションのパフォーマンスを定期的に評価し、改善策を打つことで、継続的にデジタルエクスペリエンスを向上させ、顧客の満足度を高めます。
アプリケーションのトラブルから、顧客を失ったり、企業イメージが悪化したりするなど、最悪の事態に至るリスクを回避できます。また、人的リソースを節約し、IT運用コストの削減にも貢献します。
パフォーマンスや生産性の問題を把握し、対処するのに役立つ点や、ユーザーエクスペリエンスに関するメトリクスを集約して、目標値に対し、IT環境のパフォーマンスがどうか、バグなどの深刻な問題が発生していないか、などについて判断できる点については、APMもインフラ監視も同じです。ただし、両者は監視に対するアプローチが異なります。
APMでは、アプリケーションのパフォーマンスと健全性(適切に機能しているかどうか)を監視します。問題がある場合は、発生源に関するデータを収集してアラートを生成します。運用チームは、パフォーマンス低下がどの業務や結果に影響をおよぼしているかを判断でき、バックエンドのパフォーマンスの問題を特定して対処することで、エンドユーザーのエクスペリエンスや組織の収益に悪影響がおよぶのを防ぎます。
一方、インフラ監視では、組織のIT環境の様々な構成要素に関する情報を自動で収集して検証します。運用チームは、根本原因を効果的かつ効率的に調査して生産性の低下につながるのを防ぎ、サーバー、ミドルウェア、ネットワークなどのインフラリソースが最適に機能しているかどうかも確認できます。
APMツールは、コンテナ化されていないアプリケーションだけではなく、コンテナにデプロイされたアプリケーションも監視できます。また、コンテナ監視ツールは、APMツールと同じ機能を多く備えており、コンテナ監視ツールはAPMツールの一種と言えます。
しかし、コンテナ環境は依存関係が非常に複雑なため分散トレーシングに対応した近代的なAPMツールを導入する必要があります。
APMツール選定に際しては、予算だけではなく、下記に挙げる重要事項について漏れなく確認・検討の上、自社に最適なツールを選ぶ必要があります。
企業において、アプリケーションのパフォーマンスを最大限に維持することは、重要な課題です。業界アナリストは、APMの右肩上がりの成長は今後も続くと見ており、APMツール市場について、Gartner®︎ではAPM/オブザーバビリティ製品の市場が2026年には84億ドルに達し、2020年~2026年の複合年間成長率(CAGR)は固定通貨で8.6%になると見込んでいます(アプリケーションパフォーマンス監視/オブザーバビリティのマジック・クアドラント™︎ 2023年7月5日発行)。
APMを活用すれば、顧客の満足度を向上させ、パフォーマンスの低下による顧客離れや収益損失を回避でき、アプリケーション開発のベストプラクティスを確立・維持するなど、関係者全員がメリットを得られる好循環を築くために欠かせないツールとなっています。
SplunkではNoSampleで完全忠実なトレースに基づきエンド・ツーエンドの分析を行えるAPMを提供しています。「再現待ち」を無くし、あらゆる想定外の事態に備えることができます。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。