アプリケーションパフォーマンスモニタリング(APM)とオブザーバビリティは、ソフトウェアのパフォーマンスを理解して改善するための2つの密接に関連したアプローチですが、同じことを意味するわけではありません。APMは、ダッシュボードとアラート使用して既知または想定される障害を監視するもので、包括的なオブザーバビリティを実現するステップの1つです。オブザーバビリティは、複雑なシステムを理解し、考えもしなかった潜在的な問題に対する答えを発見するのに役立つ、総合的で動的な実践手法です。オブザーバビリティには、ソフトウェアアーキテクチャーの複数の層にわたってデータを収集し、それをリアルタイムで分析したり、特定の信号に合わせてそのデータについて質問したりすることが含まれます。これにより、どの問題に焦点を当てるべきかがわかります。
APMは、ダッシュボードとアラートをユーザーに提供し、本番環境でのアプリケーションのパフォーマンスのトラブルシューティングを可能にします。これらのインサイトは、既知または想定されるシステム障害(通常はSRE・ゴールデンシグナルに関連する)に基づいており、事前に定義された問題が発生すると、トラブルの痕跡とトラブルシューティング方法に関する推奨事項をエンジニアにアラートで通知します。
しかし、事前に定義されていなかった、または想定されていなかった問題が発生した場合はどうなるでしょうか?昨今のソフトウェア環境は分散化が進んでおり、ソフトウェアは分散したチームによって構築、開発、保守されています。このソフトウェアは、オンプレミスでもクラウドでも、幅広いホスト上で実行できます。チームにとって、これらの分散システムを概念化し、トラブルシューティングし、改善することが重要です。オブザーバビリティの実践により、チームは動的システム内の「未知の未知」を問い、異常発生時に調査してトラブルシューティングを行う柔軟性が得られます。オブザーバビリティプラットフォームにより、チームは運用データを1か所でリアルタイムに接続して表示できるため、システムの動作をより深く理解し、スタック全体を反復的に改善できるようになります。
アプリケーションパフォーマンスモニタリングが必要
ITチームは通常、アプリケーションが遅い処理やエラーが発生している処理を特定し、ユーザーに影響を与える前に問題を修正することで、システムパフォーマンスを理解し改善するためのベストプラクティスとしてAPMを採用しています。APMは、事前設定されたアラートとパフォーマンスデータの可視化を通じて、ITチームがレスポンスタイム、スループット、エラーなどのメトリクスを理解するのに役立ちます。
次のようなツール、製品、ソリューションを使用して、ウェブサイトからモバイルアプリ、サーバー、ネットワーク、API、クラウドベースのサービス、その他のテクノロジーに至るまで、あらゆるパフォーマンスを監視できます。
- 運用ダッシュボード
- リアルユーザー監視
- モバイル監視
- 外形監視
- サーバーレス監視
- データベース監視
- インフラストラクチャ監視
- サービスマップ
APMは、アプリケーションがどのように動作しているか、以下のような頻繁に参照することがわかっているデータや条件に対して効果的なビューを提供します:
- アプリケーションのスループットはどれくらいですか?
- あるエラーバジェットを超えたら警告してほしい
- 演算処理能力とはどのようなものですか?
しかし、多くの最新のソフトウェアアーキテクチャは複雑すぎて、APMだけでは監視・管理は不可能です。複数のデータソースとさまざまなテレメトリーデータタイプ(メトリクスだけでなく)を考慮する必要があります。ロギングについても考慮してください。各ランタイムはさまざまな場所にログを出力する可能性があるため、そのデータを統合してアプリケーションのコンテキストで評価する方法が必要です。さらに、アーキテクチャにサービスやマイクロサービスコンポーネントを追加すると、ユーザーがこれらのサービスのいずれかにアクセスしてエラーが発生した場合、そのリクエストを複数のサービスにわたってトレースできる必要があります。また、コンテキストを失わずに平均復旧時間(MTTR)などのKPIを改善できるように、すべてのデータを1か所で調査できる必要もあります。
複数の実行時間と、多くのアーキテクチャ層がある場合に問題の根本原因を突き止めるには、より全体的でプロアクティブなアプローチを取る必要があります。APMは集計されたメトリクスを提供しますが、動的スタックを理解するには他の情報も必要です。
まさにオブザーバビリティが必要です
オブザーバビリティでは、システム全体の状態について、その規模や複雑さに関係なく、深い技術的な洞察を得ることが重要です。これは、DevOpsチームが昨今の分散システムにおける断片化の増加という課題に対処する上で役立ちます。オブザーバビリティにより、これまで考慮していなかったデータ内のパターンやつながりを理解する力も養われます。
オブザーバビリティプラットフォームは、一連のソースとサービスから1か所にデータを収集することを自動化し、スタック全体のコンテキストでアプリケーションのパフォーマンスを視覚化してアプリケーションの健全性を監視し、アクションを実行するための情報を提供します。これらの情報は、何かが起こったことだけでなく、その原因を理解するのに役立ち、あらゆるツールをすぐに利用して、問題を解決するための行動を起こすことができます。
New Relicは、どこに注力すべきかを正確に知らせるオブザーバビリティプラットフォームの一例です。New Relic Lookoutでは、色が鮮やかであれば変化が激しいことを、またサイズが大きければ規模も大きいことをそれぞれ表しています。相関関係と異常事象の履歴を深く掘り下げて、それがシステム全体にどのように影響するのかを確認できます。
オブザーバビリティプラットフォームを評価する際は、次のことが可能なプラットフォームを探してください。
- オープンな計装エージェントを使用して、テレメトリデータをオープンソース、またはデータを生成するベンダー固有のエンティティから収集します。テレメトリデータの例には、メトリクス、イベント、ログ、トレース(多くの場合MELTと呼ばれます)が含まれます。エンティティの例にはサービス、ホスト、アプリケーション、コンテナが含まれます。
- スタック全体を可視化、ナビゲート、デバッグ、改善して、エンドユーザー体験を最適化します。
- 収集された高いカーディナリティの大量の未処理テレメトリデータを、相関性とコンテキストについて解析すると、その結果浮かび上がるパターンや異常性を理解することができます。
- AIOps実践の一環として人工知能と機械学習の進歩を活用すると、アラートノイズを削減し誤報を排除して、インシデントを関連付けて、異常を自動検出できます。これらを組み合わせることで、インシデントをより迅速に発見、診断、解決することができます。どの領域に最も改善が必要かの発見は、アプリケーションのエンドユーザーに最大の効果をもたらすために、チームが開発者の取り組みを今後どこに集中させるべきかを決定するのに役立ちます。
APMとオブザーバビリティの違い
これまで説明したように、APMとオブザーバビリティは関連する概念ですが、焦点が異なります。
APMは、その名前が示すように、主にアプリケーションのパフォーマンスの監視と管理に重点を置いています。レスポンスタイム、エラー率、トランザクショントレースなど、アプリケーションのパフォーマンスに関連する特定のメトリクスを追跡します。APMは、アプリケーションのパフォーマンスとユーザー体験に影響を与える問題を特定して、対処するように設計されています。
一方、オブザーバビリティは、複雑なシステムを理解し、問題を効果的にトラブルシューティングする能力を強調することで、さらに幅広い視点を持ちます。オブザーバビリティにはAPMメトリクスが含まれますが、ログイベントやトレースなどのさまざまなデータタイプにも拡張されます。オブザーバビリティは、システム動作の全体的な理解を強化し、システムのスタック全体の問題の特定と解決を容易にすることを目的としています。
本質的に、APMは1つのセクション(アプリケーションパフォーマンス)に焦点を当てたオブザーバビリティの一部であり、オブザーバビリティはシステム全体の動作に焦点を当てています。APMツールはアプリケーション固有の監視メトリクスを最適化するために重要ですが、オブザーバビリティツールは複雑なシステムのトラブルシューティングと保守のための、より広範なコンテキストを提供します。
オブザーバビリティと監視の主な違い
監視はオブザーバビリティの重要な部分ですが、この2つは範囲と目的が異なります。監視には主に、特定のパフォーマンスメトリクスと既知の問題に焦点を当てた、事前定義されたメトリクスに関するデータの追跡と収集が含まれます。オブザーバビリティには、複雑なシステムを探索、理解、診断する能力など、より広い視野が含まれます。オブザーバビリティには、システム全体の動作を洞察に取り込んで、これまで知られていなかった問題を発見するために、さまざまな種類のデータを収集することが含まれます。
APMとログ監視の違い
APM サービスとログモニタリングは、どちらもソフトウェアアプリケーションを維持し最適化するために 不可欠なものですが、アプリケーションライフサイクルの異なる側面に焦点を当てています。 APM はアプリケーションの全体的なパフォーマンスに焦点を当てますが、ログ監視は特に、デバッグ、トラブルシューティング、およびセキュリティの目的でログデータを収集し、分析することを目的としています。
APMはオブザーバビリティ実践の一部にすぎない
今日のソフトウェアスタックがアプリケーション中心であることを考えると、強力なAPM規律がなければオブザーバビリティを実現することはできません。
このように考えてみてください。オブザーバビリティは、複雑なシステムをどれだけよく理解できるかというアプローチです。アプリケーションパフォーマンスモニタリングは、そのアプローチを支援するための行動です。オブザーバビリティは、APMの必要性を排除するものではなく、APMが、オブザーバビリティを実現するための手段のひとつとなります。
アプリケーションパフォーマンス監視の詳細については、APMとは何かを参照してください。オブザーバビリティについてさらに詳しく知りたい方は、オブザーバビリティとは何かを参照してください。当社の言葉をそのまま鵜呑みにするのではなく、APMを使用した当社の顧客についてもお読みください。
APMとオブザーバビリティを始めましょう。New Relicをお試しください。
APMとオブザーバビリティの詳細を学ぶ最善の方法は、オブザーバビリティソリューションを使った実地体験をすることです。
- 無料のNew Relicアカウントにご登録ください。無料アカウントには、毎月100GBの無料データ取り込み、1名の無料フルアクセスユーザー、および無制限の無料ベーシックユーザーが含まれます。
- 次に、APMのドキュメントとオブザーバビリティのドキュメントをご覧ください。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.