AppDynamicsではアプリケーション パフォーマンス管理(APM)以外にも様々なモニタリングの機能を提供しています。
それぞれの役割についてご理解いただけるように本記事で解説します。
AppDynamicsでは色々なタイプのモニタリングを提供していますが、コンソール上部のメニューからそれを選択できます。
製品Webサイトの用語に併せてマッピングするとこのようになります。
・ Applications ... アプリケーション パフォーマンス管理 ・ User Experience ... エンドユーザモニタリング ・ インフラストラクチャの可視性 ・ Servers ... サーバの可視性 ・ Databases ... データベースの可視性 ・ Analytics ... ビジネス パフォーマンス モニタリング (を含めたアナリティックス機能)
それぞれの役割の違いについて、このブログで簡潔、そしてなるべくわかりやすく説明してみたいと思います。
まずAppDynamicsを使う目的について考えましょう。今回はあえてわかりやすくするためにシンプルに定義してみたいと思います。
Web&モバイルアプリケーションのエンドユーザ体験を向上させる
では、AppDynamicsにおいてエンドユーザ体験とは一体どういった情報で可視化できるのでしょうか?
システム担当者にアプリケーションのエンドユーザ体験はどう?と聞いてもピンとこないと思います。
このレベルの情報は、ロードバランサやアプリケーションサーバの製品自体が計測して保有していますので、Zabbixなどのインフラ監視系のツールで収集できます。
しかし、もしかしたら実態はこうだったかもしれません。
・リクエスト量1時間あたり15000件... ・ アプリケーションに対するヘルスチェックのリクエストが1秒に1回実行されている(3600件) ・ Webサイトに表示される商品の画像ファイルのリクエスト(10000件) ・ 残りが重要な業務トランザクション リクエスト(1400件)
平均レスポンスタイム1500ミリ秒... ・ 商品の検索リクエストは平均10秒だった(問題あり!) ・ 購買のホームページの表示は平均1秒だった(問題なし) ・ 購買申請の確定処理は平均5秒だった(問題なし?) ・ ヘルスチェックは平均100ミリ秒だった(問題なしだが、これが全体の平均値を低く見せてしまっている) HTTP 500エラー 50件... ・ 購買申請の確定ボタン押した時、 200件中50件がエラー (25%の確率でエラー!) さらに端末側ではこんな状況だった... ・ 検索リクエストの応答は10秒だが、画像ファイルの表示まで含めるたページ表示の完了は15秒、回線が遅いと30秒かかるユーザーもいた。 ・ 特定の操作をするとJavascriptのエラーが発生してボタンが押せなくなり、一から申請をやり直さないといけない ・ 最近開発されたモバイルアプリは頻繁に落ちる ・ モバイルアプリの品質が悪く、商品毎にAPIリクエストを発行し、サーバに余計な負荷をかけている さらにHTTPエラーといったシステムエラーでは見えてこない、業務上のエラーが... ・ アクセス設定に不備があり、今日は特定のサプライヤだけアクセスできず、発注情報を処理できなかった。
このようなリアルな実態を、AppDynamicsを使うことで掴むことができるようになります。(それぞれのケースに使う製品を色別で表しています)
- アプリケーション パフォーマンス管理
- エンドユーザモニタリング
- ビジネス パフォーマンス モニタリング
では、それぞれで収集されるデータについて見ていきましょう。
アプリケーション パフォーマンス管理
AppDynamicsでは最初のフロントのアプリケーションに到達したリクエストを、ビジネストランザクション毎に区分けして性能を測定します。その結果例えば、購買申請、商品検索といったトランザクションの情報が可視化され、エンドユーザの利用状況も把握できるようになります。また、アプリケーション内部の動きの可視化も行われ、トラブルシューティングが容易になります。
アプリケーションとデータベースが一般的には最も複雑です。変更頻度も多く、ブラックボックスになりやすい、性能問題やエラーが発生しやすいところです。まずここを可視化・監視することが重要です。
エンドユーザモニタリング
エンドユーザモニタリングでは、エンドユーザの端末側の性能情報をリモートで収集することができ、エンドユーザ側の動作を知ることができます。
エンドユーザモニタリングでは概要としては以下の2つのタイプの情報を可視化できます。
1. フロントエンドの描画時の動作 ページ描画の完了時間を測定できます。ページ描画に関わる端末側の処理や、Webリソースのダウンロードが可視化されます。 2. フロントエンドからのWebリクエストの可視化 これは、さきほどのアプリケーション監視を補完できる部分があります。 ・ よりリアルなエンドユーザの体感 - 端末とアプリケーションの間にあるシステムの処理時間も含めた応答時間が計測ができます。ISPのインターネット回線や、自社DC内のスイッチやルーターなどのネットワーク機器、WAFといったセキュリティアプライアンスなどで、万が一性能問題があれば、このエンドユーザ監視の応答時間に遅延が見えるはずです。 ・ 端末アプリが直接アクセスする外部サービスへの依存性 - フロントエンドから直接外部サービスへのWebアクセスも、エンドユーザモニタリングだからこそトラックできます。
ビジネス パフォーマンス モニタリング
AppDynamicsではアプリケーションコードで取り扱っているデータを収集する機能があり、これによりビジネスメトリックの監視ができます。(モバイルアプリやWebページからも収集可能です)
ビジネスメトリックを監視に使うのは最上位のレベルの監視方法と言えます。以下のような状況の把握にも活用できます。
- アプリケーションを含むシステム全体が正常に稼働しているか
”バックアップサイトにフェールオーバーした! システムは無事に動いているように見えるが、本当にビジネスは継続できているのか?”
- 新しい機能追加やサービス追加が期待通りの成果に結びついているか。逆に悪影響を及ぼしていないか。
"機能追加のリリースにより、コンバージョンレートは改善されているのか?"
- 特定のビジネス・セグメントのITパフォーマンス
"エラーが発生しているが、特定の取引チャネルからのデータだけの問題か?"
うまく活用することで、ビジネス数値を含めた全体の俯瞰ができるようになります。
次回はインフラストラクチャ モニタリングについての概要をご紹介します。お楽しみに!
App Dynamics製品概要、無料トライアルはこちらから
https://www.cisco.com/c/m/ja_jp/appdynamics/product.html