New Relic Now 新しいAgentic Integrationsのデモを6月24日に実施
ご登録ください

テクノロジーの台頭により、企業はデジタルエクスペリエンスの最適化を迫られています。スタートアップ企業であろうと、老舗企業であろうと、常に時代の変化に対応し続けるためには、完璧なユーザー体験を迅速に提供することが不可欠です。

変化の速い現代社会において、アプリケーションの監視は円滑なビジネス運営に不可欠な要素です。このブログ記事では、アプリケーションパフォーマンス監視(APM)とは何か、どのように機能するのか、なぜ現代社会において不可欠なのかについて説明します。

APMとは?

APMとは、リアルタイムデータを使用して、アプリケーションのパフォーマンスとエンドユーザーのデジタルエクスペリエンスを追跡する手法です。APMは、企業が複雑なアプリケーションパフォーマンスの問題を検出および診断し、アプリケーションが期待されるサービスレベルを満たすように支援します。

「アプリケーションパフォーマンス監視」と「アプリケーションパフォーマンス管理」という用語は、多くの場合、同じ意味で使われ、このツールとプロセスのセットを説明する際に、「パフォーマンス監視」や「アプリケーション監視」などの用語が使用されることもあります。

さらなる詳細
前面と背景に多層グラフィックが表示されており、タブレットデバイスで作業をしている人
APMでアプリのパフォーマンスを向上
詳細情報

APMが重要な理由

エンドユーザーも、アプリケーションの保守や構築を行うチームも、問題のあるアプリや、動作が遅いアプリの対応に労力をかけることを好む人は誰もいません。テクノロジーが急速に進化するにつれ、シームレスで高速、信頼性の高いデジタルエクスペリエンスに対する顧客の期待も高まっています。クラウドコンピューティング、マイクロアーキテクチャ、モバイルアプリケーション、IoTデバイスの登場により、IT環境はより分散化され、複雑化しており、アプリケーションのパフォーマンス維持はますます困難になっています。しかしながら、APMツールを活用すれば、こうした複雑さを理解し、アプリケーションのパフォーマンスをプロアクティブに監視、診断、最適化できます。これにより、エンドユーザーに影響が出る前に問題を特定し、解決するための時間と自信が得られると同時に、効率性の向上、コスト削減、顧客満足度の向上に向けたファクトに基づいた戦略的な意思決定を行うことができます。デジタルサービスへの依存度が高まり、複雑さが増すにつれ、APMは現代のIT戦略において、これまで以上に不可欠なものになります。

APMツールの利点

APMソリューションを導入する利点を見ていきましょう。

問題の根本原因を解明

ソフトウェアのバグやパフォーマンスの問題の根本原因を見つけるのは、タマネギの皮をむくようなものです。つまり、皮をむくたびに、その下に隠れている別の層が明らかになります。APMは、フルスタックのすべてのコンポーネント全体に渡るリクエストをトレースすることで、根本原因の解明を簡素化します。表面的なエラーにとらわれることなく、APMは問題の根底にある深い原因を明らかにします。コードレベルの洞察により、ボトルネック、非効率な処理、問題のある依存関係を、自社のアプリケーション、インフラストラクチャ、サードパーティのサービスなど、問題が発生している場所に関係なく、正確に特定できます。

統合されたフルスタックビューにより複雑さを解消

APMは、ウェブサービス、データベース、キャッシュレイヤー、サードパーティAPI、インフラストラクチャリソースなど、あらゆるアプリケーションコンポーネントについて、コードレベルの詳細なインサイトと可視性を提供します。コンポーネント間のインタラクションも確認できます。

ダウンタイム/パフォーマンス低下による収益損失を削減

たとえ短時間のシステム停止やレスポンスタイムの遅延であっても、現代のデジタルビジネスにおいては収益に大きな影響が出る可能性があります。顧客は、遅いページ、エラーメッセージ、トランザクションの失敗といった状況には決して我慢できません。ショッピングカートを放棄したり、サイトから離脱したり、他のサイトで買い物をするようになります。

APMは潜在的なパフォーマンスの問題をプロアクティブに監視し、チームにアラートを通知することで、問題の拡大を防ぐための対策を講じることができるため、アプリケーションのダウンタイムが削減されます。APMは根本原因分析のほか、さまざまなデバイスやプラットフォームにおけるアプリケーションパフォーマンスの詳細な可視性を提供します。

常に信頼性の高い高パフォーマンスな体験を維持することで、購入放棄、コンバージョンの失敗、コンプライアンス違反によるペナルティ、顧客満足度の低下など、ブランドの評判に修復不可能なダメージを与える可能性のある潜在的な損失を回避できます。

リソース使用率の向上とインフラストラクチャの適正規模化

APMは、フルスタック全体のアプリケーションパフォーマンスを詳細に可視化するため、インフラストラクチャが過剰にプロビジョニングされ、十分に活用されていない状況(クラウドコストの過剰支出は間違いありません)を明確に把握できます。逆に、APMデータは、ワークロードがサーバー容量の上限に達し、追加のリソースが必要になるタイミングを明らかにします。この状況を把握すると、需要の変動に合わせてインフラストラクチャを継続的かつ適正に拡大または縮小できます。これらのインサイトに基づいて、コードのリファクタリングや設定の微調整を行い、既存のインフラストラクチャ投資から最大限のパフォーマンスを引き出すことができます。オンプレミスでもクラウドでも、APMにより組織の過剰なプロビジョニングを防ぎ、リソースの無駄をなくすことができます。

エンドユーザー体験の向上

エンドユーザーは、ウェブアプリを使用するときに速度と信頼性を期待します。また、最適化されたパフォーマンスと迅速なレスポンスタイムも望んでいます。

すぐに読み込まれなければ、ユーザーは数秒以内にそのウェブサイトを離脱してしまいます。さらに悪いことは、悪いユーザー体験は顧客離れを引き起こし、競合サービスや製品への乗り換えにつながる可能性があります。最近のForbesの調査によると、ウェブサイトの読み込みに3秒以上かかると40%のユーザーが放棄し、88%のユーザーは悪い体験をしたウェブサイトには二度と戻ってきません。このような現実が、ビジネスの成功、顧客満足度、ブランドの評判に悪影響を及ぼす可能性があります。

エンジニアリングチームにとっての使いやすさ

アプリケーションパフォーマンスの問題は、エンジニアリングチームにとっても大きな問題となります。オンコールのエンジニアが、午前3時にビジネストランザクションに関する重要なシステムアラートを受信し、真夜中にチーム全員で問題解決に取り組むことになる可能性もあります。

状況が不明な中、重大な問題が発生し、エンジニアが問題の根本原因を把握できない場合は、事態はさらに悪化します。API、Kubernetesクラスタ、クラウドサービス、またはコードからクラウドに至る経路の数か所で問題が発生している可能性があります。解決に時間がかかるほど、顧客と企業の収益に悪影響がもたらされる可能性が高まります。

APMは、エンジニアリングチームが問題を迅速に特定し、プロアクティブに解決するのに役立ちます。たとえば、エンジニアリングチームは、ページロードタイムが過度に遅い場合に、アラートを送信する重大度の閾値を設定し、それを詳細なトレースと組み合わせて、エンドユーザーが影響を受ける前に原因をすばやく特定して修正できます。

もし適切にAPMを利用しない利用しない場合、問題を解決するために残された手段は、実際にエンドユーザーから問題を学習することになります。すでに悪影響を受けてしまっているエンドユーザーから学ぶということになります。その結果、APMが提供する追加的なコンテキストなしに、問題解決を実施することになり、平均検出時間(MTTD)と平均解決時間(MTTR)が長くなります。

現在のエンタープライズアプリケーションは高度に分散していることが多いため、APMソリューションがなければエラーやパフォーマンスの問題を追跡することは困難です。

APMは大量の生のテレメトリデータを取得し、メトリクス、パターン、異常性に関連付けます。これにより、エンジニアリングチームは迅速に問題を発見し、トラブルシューティングを行うことができます。

APMソリューションのコア機能

APMツールの本質は、監視対象のアプリケーションの種類を問わず、アプリケーションとその基盤となるインフラストラクチャのライブパフォーマンスを詳細に可視化することです。この可視性は、技術スタック全体をエンドツーエンドで可視化する、強力な監視機能群が連携して動作することで実現されています。包括的なAPMスイートを構成する主な機能は次のとおりです。

運用ダッシュボード

運用ダッシュボードには、アプリケーションパフォーマンスに関する高レベルの概要が表示されます。運用ダッシュボードをカスタマイズして、ゴールデンシグナルからカスタム主要パフォーマンス指標(KPI)、お客様が監視しているサービスまで、最も重要な監視メトリクスを表示することができます。

リアルユーザー監視

RUMとも呼ばれる実際のユーザー監視では、アプリケーションで実際のユーザーが何を行っているか、そしてアプリケーションがユーザー側でどの程度うまく機能しているかに関する洞察を提供します。

外形監視

外型監視は、ヘッドレスブラウザを使用して実際のユーザーの動作を模倣します。実務担当者は、実際のユーザーからのデータに頼ることなく、特定のユーザーフローを定期的にプロアクティブにテストできます。

サーバーレス監視

サーバーレス監視を使うと、オンプレミスサーバーではなく、AWS LambdaなどのクラウドベースのFaaS(Function as a Service)を使用するアプリケーションのパフォーマンスを監視できます。

データベース監視

データベース監視では、データベースのパフォーマンスを監視して、クエリに要する時間を判断できます。

モバイル監視

モバイル監視を使うと、レイテンシの問題やクラッシュ履歴など、iOSおよびAndroidのアプリケーションを監視できます。

インフラストラクチャ監視

インフラストラクチャ監視は、ハードウェア、クラウドインフラストラクチャ、Kubernetesクラスタなど、インフラストラクチャのパフォーマンスを把握するために必要となります。

サービスマップ

サービスマップを使うと、アプリケーションの接続と依存関係をすばやく確認できます。これは、数千ものサービスを使用する大規模なアプリケーションにおいてとりわけ重要です。

優れたAPMソリューションを使うと、テレメトリデータを検索してより深い洞察を得たり、ログを調べたり、分散トレーシングにより一連のイベントを調べたり、さらに問題の根本原因を突き止めたりすることもできます。

 

APMソリューションの選択

APMソリューションは、企業がアプリケーションのパフォーマンスを監視および管理できるように設計されています。テクノロジーの進歩に伴い、ソリューションの種類と機能は進化しています。しかし、基本的なAPMソフトウェアでも、ページの読み込み時間、レスポンスタイム、エラー率など、アプリケーションのさまざまな側面に関するデータを収集できます。

APMツール

優れたAPMツールは、次の質問に答えることができます。

  • 「アプリケーションが壊れているか、あるいは動作が遅いのではないか?」
  • 「アプリケーションが壊れているか、動作が遅い場合、問題の原因は何か?」

DevOpsとエンジニアリングチームは、APMツールを使用することでこれらの質問に答え、実際のユーザーに影響を与える前に、迅速に問題を発見して、修正できるようになります。

APMツールは数多くあるため、どれが最適かを見極めるのは難しい場合があります。最適なAPMツールには、以下の主要機能が備わっています。

  • アプリケーションのパフォーマンスを包括的に可視化
  • リアルタイム監視により、問題を迅速に検出し、サービス中断を防止
  • 直感的なインタフェースと簡単なナビゲーションにより、技術レベルを問わないユーザーフレンドリーな設計
  • チーム固有のニーズやメトリクスに合わせてカスタマイズ可能なダッシュボード
  • プロアクティブなアラート機能により、問題を迅速にチームに通知

APMメトリクス

メトリクスはパフォーマンスに関するインサイトを提供します。メトリクスが不利な傾向を示している場合、チームに対処が必要な問題があることを知らせ、問題の拡大を防ぎます。APMは理想的な機能を確保するために、いくつかの主要なメトリクスを活用します。これらには以下が含まれます。

  • レスポンスタイム: アプリケーションがユーザーの操作に応答するまでにかかる時間
  • エラー率: アプリケーションが生成するエラーの頻度
  • リクエスト率:単位時間あたりにアプリケーションが受信するリクエスト数
  • アプリケーションの可用性(アップタイム): アプリケーションが実行中で使用可能な合計時間
  • CPU使用率:アプリケーションが使用しているリソースストレージの量
  • アプリケーションパフォーマンスインデックス(Apdex)スコア: 「通常の」パフォーマンスメトリクスと比較した、アプリケーションの相対的なパフォーマンス
  • サービスレベル契約(SLA)スコア:顧客がサービスプロバイダーに期待できるサービスレベルを定量化し、ソフトウェアアプリケーションが達成すべき具体的なパフォーマンスのベンチマーク。このスコアは、レスポンスタイム、エラー率、アップタイム、一定期間内のリクエスト数に基づいて計算される

APMを誰が使用するか?

APM は、テクノロジー業界の企業だけでなく、すべての企業にとって重要な手法です。ほとんどの企業はウェブサイトを持っているため、ウェブ資産のパフォーマンスとエンドユーザーの総合的な体験を監視する必要があります。では、APMソリューションを使用して、APMから恩恵を受けるのは、どのようなチームなのでしょうか。ユースケースは、アプリケーションのサイズと範囲によって異なります。

  • DevOpsエンジニアは、本番環境でのアプリケーションのテスト、デプロイメント、および保守に関連するプロセスを自動化します。APMは、DevOpsの重要なベストプラクティスに欠かせません。
  • サイト信頼性エンジニア(SRE)は、ソフトウェアベースの運用アプローチを採用します。SREの仕事は、アプリケーションの信頼性を保証することに重点が置かれます。SREチームにとって、APMを使用してサイトの信頼性をプロアクティブに監視することは絶対に不可欠です
  • ソフトウェアエンジニアは、コードを記述し、新しい機能を構築します。中小企業では、ソフトウェアエンジニアが、本番環境でのコードの監視をはじめ、プロセスのあらゆる部分に関与することがあります。大企業でも、エンジニアがソフトウェアのライフサイクルの多くの部分にますます関与するようになっています。

アプリケーションパフォーマンス監視の開始方法は?

アプリケーションパフォーマンス監視を自身のアプリケーションに導入するには、アプリケーションを通過するデータを追跡するエージェントをインストールする必要があります。このプロセスはインストゥルメンテーションと呼ばれます。このプロセスは、多くの場合、コマンドラインインターフェイス(CLI)を使って必要なエージェントを自動インストールするのと同じくらい簡単です。これらのエージェントは、ウェブトランザクションとウェブ以外のトランザクションの両方に関する情報を収集してレポートします。カスタムインストゥルメンテーションを使うと、トランザクショントレースに詳細を追加したり、追跡したくないトランザクションのインストゥルメンテーションをブロックしたりすることも可能です。CLIを使ってインストゥルメンテーションを自動化すると、APMソリューションにテレメトリデータを数分で送信開始できるようになります。

複雑な分散型アプリケーションでは、さまざまなサービスが使われますが、理想的には、アプリケーションの全部分を計装する必要があります。包括的なAPMツールは、AWSやAzureなどの多くの一般的なサービスとのインテグレーションに対応するため、アプリケーション内のサードパーティの依存関係を速やかに計装できます。

最終的には、アプリケーションに必要な機能と計装したいものだけを選択して選択できます。「上記のすべて」のアプローチを採用することで、最も多くの利点が得られます。すなわち、所有するアプリケーションについて、完全なエンドツーエンドの監視(「オブザーバビリティ」とも呼ばれます)を実現することができます。

APMとオブザーバビリティの違いとは?

APMはアプリケーションパフォーマンスの監視を目的としていますが、多くの最新のアプリケーションアーキテクチャは複雑すぎて、APMだけでは監視・管理は不可能です。APMは、アプリケーションのパフォーマンスの高レベルの概要を把握できますが、大規模で複雑なアプリケーションの問題の根本原因を把握するには、より技術的なアプローチを取る必要があります。

オブザーバビリティとは、システムの規模や複雑さに関係なく、システム全体の状態について、技術的に深く洞察することです。APMは集計されたメトリクスを提供しますが、データを掘り下げるには、ディストリビューティッド(分散)トレーシングのような他のツールも必要です。

APMはオブザーバビリティの一部であり、オブザーバビリティはAPMの上位セットです。多くのアプリケーションでは、完全なオブザーバビリティソリューションが必要になります。

APMとオブザーバビリティの違いの詳細は、「APMとオブザーバビリティの比較」(APM vs. observability)をご覧ください。

New Relic APM 360でリアルタイムのインサイトを獲得

従来のAPMツールは、新たなテクノロジーの時代に課題をもたらしています。だからこそ、APMの次世代版である、New Relic APM 360へのアップグレードが必要です。

New Relic APM 360は、スタックおよびアプリケーション開発ライフサイクル全体の重要な健全性メトリクスに対するリアルタイムの洞察を1か所で提供します。APM 360を使用すると、チームはダッシュボードを一目確認するだけで問題を未然に防ぎ、デバッグを迅速化し、ガイド付きワークフローとデータの推奨事項により監視のギャップを解消できます。

 

アプリケーションパフォーマンス監視のFAQ

アプリケーションパフォーマンスの評価方法は?

アプリケーションパフォーマンスの評価には複数の方法があります。APMの戦略とツールは、エラーと問題が顧客体験に影響を及ぼす前に、開発チームにアラートを送信します。 

APMソフトウェアで、単一のダッシュボードからアプリケーションパフォーマンスを評価できます。以下が、最も一般的な評価手法です。

1. 監視:レスポンスタイム、リソース使用、エラー率などのさまざまなパフォーマンスメトリクスのデータを収集し、そのデータの分析により傾向と潜在的な問題を特定します

2. 負荷テスト:大規模ユーザー数によるアプリケーションへの同時アクセスなど、現実の使用シナリオでシミュレーションを行い、アプリケーションに負荷がかかった場合のパフォーマンスを確認します

3. パフォーマンスプロファイリング:アプリケーションコードを分析し、ボトルネックや、パフォーマンス向上のために最適化できるエリアを特定します

4. ユーザーフィードバック:ユーザーから、アプリケーションを使用した体験について、遭遇したであろう問題も含めてフィードバックを収集します

5. A/Bテスト:アプリケーションの2つのバージョンのうち、どちらのパフォーマンスが優れているかを比較して確認します

6. 外形監視:制御された環境下におけるアプリケーションのユーザーインタラクションをシミュレーションし、アプリケーションパフォーマンスを監視します

APMで何を監視すればよいでしょうか?

APMツールを使用する際に監視すべき主要メトリクスは、以下の通りです。

1. レスポンスタイム:リクエストが処理され、レスポンスが返されるまでにかかる時間

2. エラー率:失敗リクエストや処理できなかった例外など、アプリケーションで発生したエラー数

3. リソース使用:アプリケーションが使用しているCPUやメモリなど、システムリソースの量

4. スループット:アプリケーションが一定期間内に処理できるリクエスト数

5. レイテンシ:データがクライアントからサーバに送受信される時間

6. ユーザー体験:アプリケーションに関するユーザーの全般的な満足度

7. ビジネスメトリクス:トランザクション数、収益、コンバージョン率など、アプリケーションがビジネスに与える影響

これらのメトリクスを経時的にモニタリングして傾向とパターンを検出し、アプリケーション内でパフォーマンスの問題が、いつ、どこで起こるのかを特定できることが大切です。

また、アプリケーションの特定要件に応じて、追加のまたは異なるメトリクスを監視する必要があるかもしれないことに留意しておくことも重要です。

本番環境でのアプリケーションのセキュリティリスクの評価方法は?

ゼロデイ脆弱性は、これまで知られていなかったリスクで、脅威アクターが本番環境でのアプリケーションやサービスを悪用して、データの盗難、恐喝、ビジネスの妨害を行う可能性があります。

アプリケーションのリスクを継続的に評価するには、New Relic Security RXを使用してアプリケーションまたはサービスごとに脆弱性を特定し優先順位を付け、次にNew Relicのインタラクティブ・アプリケーション・セキュリティ・テスト(IAST)を用いて、これらの脆弱性が実際に悪用される可能性があるかををテストします。

  1. 脆弱性の評価: アプリケーションおよびサービス内のオープンソースライブラリを監視して、共通脆弱性識別子(CVE)がないか確認します
  2. 影響の分析:作業の優先順位を付けるために、重大度、数、範囲、ソース、修復手順による脆弱性のフィルタリングを行います
  3. 脆弱性が見られる領域の監査:すべてのエンティティ、ライブラリ、脆弱なライブラリを使用するサービスの数、アクティブな脆弱性、およびそれらが最初と最後に確認された時期を監視します
  4. エクスプロイトの実証とテスト:実際の攻撃をシミュレートして、アプリケーションの脆弱性が、実際に脅威アクターによって悪用される可能性があるかをテストします

APM ソリューションの利点は何ですか?

アプリケーションパフォーマンス管理ソリューションには、いくつかの利点があります。

  1. 洞察力の向上とレスポンスタイムの短縮:APMソリューションは、DevOpsチームとエンジニアにアプリケーションのあらゆる側面に関するより深い洞察を提供します。問題が発生した場合、チームは問題の根本原因をより深く理解できるため、より迅速に対応して解決できます。
  2. ユーザー体験の向上:アプリケーションのパフォーマンスを監視することで、APMはいかにユーザー体験を向上できるかについての知見を提供します。これにより、企業はアプリケーションがスムーズに運用され、ポジティブなユーザー体験を提供していることを確実にできます。
  3. アプリの信頼性の向上:APMソフトウェアでは、レスポンスタイムの遅延や高いエラー率など、アプリケーションの信頼性に影響を与える問題の検出と診断ができます。これらの問題に対応することで、アプリケーションの信頼性を高めることができます。
  4. アプリのパフォーマンスの向上:APMにより、組織はパフォーマンスに関する問題が、システムのダウンタイムや収益損失などの大きな問題に発展する前に、特定、対応しやすくなり、コストを削減できます。
  5. より優れた事業実績:APMソリューションは、トランザクション数、収益、コンバージョン率、その他の主要なビジネスメトリクスなど、アプリケーションがどのビジネスに影響を与えているかについての詳細情報を提供します。この情報は、アプリケーションの最適化と、業績の全般的な改善に活用できます。

APMソリューションにより、企業はアプリケーションの円滑な運用が確認でき、優れたユーザー体験とビジネスへのプラスの影響を生み出します。

本番環境でのアプリケーションパフォーマンスの監視方法は?

本番環境でのアプリケーションパフォーマンスの監視方法はいくつかあります。本番環境でのアプリケーションパフォーマンスは、以下の複数の要因が組み合わされています。 

  1. ブラウザ監視:実際のユーザーが使用しているアプリケーションのパフォーマンスに関するデータを収集します。これは、アプリケーションコードに組み込まれたJavaScriptタグを使用してクライアントサイドのデータを収集するか、プロキシサーバーを使用してサーバーサイドのデータを収集することで実行できます

  2. 外形監視:テストサーバーなど、制御された環境下でのアプリケーションとユーザーのインタラクションをシミュレートし、パフォーマンスを測定します

  3. ログ分析:アプリケーションにより生成されたログファイルを分析し、レスポンスタイムの遅延や高いエラー率など、パフォーマンスの問題を特定します

  4. アプリケーションの計装:アプリケーションにコードを追加し、レスポンスタイムやリソース使用など、監視に使用できるパフォーマンスメトリクスに関するデータ収集を行います

  5. インフラストラクチャ監視:サーバーやネットワークデバイスなど、アプリケーションが実行されている基盤となるインフラストラクチャーのパフォーマンスに関するデータを収集します

  6. サードパーティツール:APMツールなど、本番環境のアプリケーションパフォーマンスの監視に使用できる複数のサードパーティツールがあります

APMでは、これらの要素すべてをひとつのダッシュボードで監視できるため、アプリケーション環境の統合的ビューを得るために、さまざまなテストを実行する必要がなくなります。