2025年06月23日
クラウド環境でアプリケーション性能をモニタリングする方法 第2回
「クラウド環境でアプリケーション性能をモニタリングする方法 第1回」は参考になりましたか?今回はその続編で、クラウド環境のアプリケーション問題をJENNIFERインサイトダッシュボードで、どのようにモニタリングするかについて確認します。
アプリケーションインサイトダッシュボード

新たに開発されたダッシュボード名は“アプリケーションインサイト”
JENNIFERアプリケーションインサイトダッシュボードはJENNIFERの機能の一つですが、問題の検知と原因の把握に特化しており、クラウド環境モニタリングのためのダッシュボードになりました。
既存のJENNIFERダッシュボードは個別インスタンス単位のアプリケーション性能モニタリングをメインとしていましたが、アプリケーションインサイトダッシュボードはワンステップでドメイン(業務)単位でインスタンス数に制約なく、アプリケーション性能を総合的にモニタリングできます。また、JENNIFERで初めて導入した複数のチャートが含まれています。ダッシュボードは包括的な問題の検知から詳細の分析までできるように、チャートが提供されています。
問題の検知
第1回で説明したように、急激な負荷の増加でオートスケールが発生してインスタンス数が増えると、既存のアクティブサービスチャートだけではインスタンスの状態を正確に把握することが難しい場合があります。
下記の例ではインスタンスの数を何とか把握できる状態ですが、多数のインスタンスで同時に遅延が発生する場合、アクティブサービスの詳細情報を一つ一つ確認する必要があり、非常に面倒な作業になります。

個別インスタンスの状態を把握するよりも、サービス全体の観点での問題把握が必要である場合、全てのインスタンスのアクティブサービスを一目で把握できるように要約して、視覚化することがより効率的です。
JENNIFERが新たに提供するアクティブサービスモニタリングのアクティブアプリケーションチャートについて説明します。

JENNIFERダッシュボードの全てのチャートでは、赤で障害と性能低下の危険性を表します。このチャートも赤を中心にモニタリングします。
このチャートの構成を確認すると、X軸はアクティブサービス要約情報の平均応答時間を、Y軸はリクエスト数の合計としました。アプリケーションは円で表示されます。
アプリケーションを表す円の色とサイズは次のことを表しています。
ここで遅いリクエスト数とは、アプリケーションの平均応答時間がアクティブサービスの全部で4つの区間の中で、最後の区間に該当するリクエスト数の合計を意味します。
- 色
- 🔵青
- ・正常状態
- 🔴赤
- ・アプリケーションの平均応答時間がアクティブサービスの最後の区間に該当する場合(ここでは8秒以上)
- ・アプリケーション別要約情報を構成するアクティブサービスの中の一つでもアクティブサービスの最後の区間に該当する場合
- 🔵青
- サイズ
- 遅いリクエスト数に比例して大きい
このように、色とサイズを活用した視覚情報であるため、平均値だけでは検知できない遅いアクティブサービスも一目で把握できます。また、ユーザはチャートで赤色の円をクリックするかドラッグするだけで、遅延が発生中のアプリケーションを素早く確認できます。
原因の把握
次はアプリケーションの問題を確認したため、その原因を確認します。ユーザのリクエストが長時間処理されてアクティブサービスに表示されて、応答時間が遅いか或いはエラーが発生した場合、X-Viewチャート上に赤い点で表示されます。

この赤い点を分析すると、ユーザが設定したメソッドプロファイル、External Call設定による情報をベースにボトルネックを確認できます。遅延が一時的な問題の場合は原因が判明して処置すれば良いですが、このような遅延状況が持続的に発生すると同様な対応が可能でしょうか?
問題のリクエストが既に処置された状態でも、以降のリクエストで持続的な問題が起きる可能性が高いと思います。結果的に障害状況はますます難しい状況になる可能性があります。このような状況を事前に防止することは難しいです。しかし、アプリケーションで発生する問題を100%事前防止することは不可能に近いと思いますが、発生の予兆のヒントを提供するイベントがあります。
JENNIFERはメトリクスとエラーで発生するイベントを基にアラートを発行します。これによりダッシュボードを直接モニタリングしなくても、アプリケーションの問題を即時に把握できます。ただし、他のイベントシステムと同じく、ユーザの環境に合う適切な設定が必要です。

イベントの設定が適切でない場合は、多くのデータを監視するため不要なアラート(ノイズ)が増え、重要なアラートを見逃すリスクがあります。また、必要な情報と不要な情報を選別する作業が難しい面もあります。実際、ユーザを訪問するとイベント機能を効果的に活用している事例もありますが、多すぎるアラートにより、イベント機能を非活性化しているユーザもいます。イベントは単純に問題発生を知らせるだけでなく、多様な問題の原因を事前に検知できるようにする重要な機能ですが、多くのユーザはこの機能を活用していないことを知れば、もったいないと思うはずです。このようにユーザがイベントを使用しない場合があるので、既存イベントの弱点を改善した新たな活用方法を提案します。
今回は次の様な要件で、限定的にイベントを視覚化するチャートを作成します。
- 多数のイベントがユーザに目障りとならない状態で表示する。
- イベントの複雑な設定を最少化する。
- リアルタイムな情報を提供する。
アプリケーションインサイト(チャート)
上記の要件をベースに開発したアプリケーションインサイトチャートについて説明します。

チャート名はダッシュボード名と同じです。このチャートが同じ目的のアプリケーションインサイトダッシュボードの目的と完全に一致しているためです。このダッシュボードの核心的な部分は次の通りです。
- X軸
- 最新10分間を分単位で表示
- Y軸
- 一つ一つの項目を“問題”と定義
- エラーイベント
- アノマリーイベント
- ドメイン応答時間
- ドメインアクティブサービス
- ドメイン同時ユーザ数
- CPU高負荷状態
- アプリケーションの変更履歴
- Warファイル配布
- 設定ディレクトリ内のファイル変更
チャートに表示された数値はその時点に発生した“問題”の数を表しています。発生頻度に比例して濃い色の背景色で表示します。複数の項目を時間の経過で表示したため、“問題”の推移と“問題”相互の相関関係を推測できます。
このチャートで表示する情報は、既存のJENNIFERが提供する全てのイベントと同じ方法で構成されます。違いは既存のイベントの設定をしなくても、アプリケーションインサイトチャートにJENNIFERが事前に定義した設定で、“問題”に対する推移が自動的に表示されます。
これはユーザが見逃してしまう設定で、検知できなくなる可能性がある問題を視覚化して、発生する問題の処置を素早く準備するためです。
ユーザは関心のある領域の問題をドラッグすると、 アプリケーションインサイトでリアルタイム問題分析に紹介した、リアルタイムな問題分析機能を利用することができます。この機能により “問題”の原因を把握し、JENNIFERが自動でガイドする設定を行うと、今後同じ“問題”が発生した時に、JENNIFERのイベント機能で意味のあるアラートを確認できます。
1. シーケンスダイアグラム
2. アプリケーションインサイト
3. リアルタイム問題分析
4. JENNIFERイベント
5. アプリケーションインサイト->>リアルタイム問題分析:問題の確認
6. リアルタイム問題分析->>JENNIFERイベント:推奨設定
7. 繰り返す
8. リアルタイム問題分析->>リアルタイム問題分析:原因も把握
9. リアルタイム問題分析->>アプリケーションインサイト:問題の除去
10. 終了
11. 繰り返す
12. JENNIFERイベント->>JENNIFERイベント:原因の把握
13. JENNIFERイベント->>アプリケーションインサイト:問題の除去
14. 終了

アプリケーションインサイトダッシュボードは新しい分析方法を提供するだけでなく、既存の分析方法であるX-Viewを改善することにも努めています。
アプリケーションマップ
X-Viewは全ての個別トランザクションを表示し、一つのチャートで問題があるトランザクションの確認と改善後の結果の確認ができるだけでなく、類似パターンによりアプリケーションの問題の原因を推定できるメリットがあります。
X-Viewチャートで問題があるトランザクションを選別し、分析画面に進むアプローチは非常に優れていますが、リアルタイムで処理されたアプリケーション別の分布と応答時間別分布を把握することには限界があります。
分析メニューのX-View画面へ移動して、確認したい時間帯の全てのトランザクションを照会すると、X-Viewチャートの左側のアプリケーション別リクエスト数、アプリケーションタブへ移動すれば、アプリケーション単位の情報をある程度確認できます。


しかし、このような分析機能は次の様な限界があります。
- リアルタイムダッシュボードで利用できない。
- データの量により照会に限界がある。
- アプリケーションの分布と応答時間の分布を同時に確認できない。
クラウド環境ではリソースの活用は直接コストに繋がるため、問題があるアプリケーションのみならず、アプリケーションのリクエスト分布を把握することも非常に重要です。
そのため、ダッシュボードでも個別トランザクションのアプリケーション分布と応答時間の分布を同時に確認できるコンポーネントが必要だと判断し、X-Viewデータをベースに新しいチャートを追加しました。

新たに開発したチャートは“アプリケーションマップ”です。既存のリアルタイムX-Viewデータをツリーマップで表示し、アプリケーションのリクエスト数と応答時間の二つの情報をベースに、各区画のサイズと色が決定されます。
- 区画のサイズ
- リクエスト数に比例
- 区画の色
- アプリケーション応答時間関連の次の項目の数値が基準
- 平均応答時間
- 平均SQL時間
- 平均External Call時間
- 応答時間標準偏差
- アクティブサービス経過時間範囲の設定を基準
- エラーが1件でも存在すると赤色で表示
- アプリケーション応答時間関連の次の項目の数値が基準
リアルタイムX-Viewチャートと同じデータを利用して表示するため、個別トランザクションレベルのアプリケーション単位リクエスト分布と応答時間を一目で確認できます。
アプリケーションマップチャートで気になる区画をクリックするか、X-Viewのようにドラッグすると、個別トランザクション分析ポップアップが開きます。そのため、ユーザはサイズが広い区画に表示されたアプリケーションが多いリクエストを確認するか、特定の色の区画を対象に個別トランザクションを分析できます。
このチャートでは画面を移動することなく、一つのダッシュボードでアプリケーションの分布の確認と個別トランザクション分析を行うことができます。
スタックトレース
アプリケーションで発生した問題の原因が、エラーまたはSQL、外部リクエストの場合、前述の方法で素早く対応できます。
その他の問題の原因には次のものが考えられます。
- TPSが非常に高い。
- 応答時間が短い(処理時間が早い)。
- CPU使用率が高い。
上記の3つの原因が重なるアプリケーションの場合、メソッドプロファイリングでCPU使用率分析をすることは不可能に近いです。
TPSが高くて応答時間が短いために、プロファイルを設定すると、CPU使用率が増加して応答時間が遅くなる可能性があるためです。
JENNIFERにはこのような状況で利用できるスタックトレースレコーダ (Stack trace Recorder)機能があります。アプリケーションのスレッドを対象に常時スタックトレースを収集するため、既存と異なるリクエスト頻度の発生時点を確認した後で、ドラッグして実行されたメソッド頻度を確認できる機能です。
既存のスタックトレース分析は個別トランザクション詳細分析、分析-スタックトレースレコーダメニューの事後分析で利用しましたが、アプリケーションインサイトダッシュボードでは、スタックトレース収集数の情報をリアルタイムダッシュボードで利用できるように改善しました。

クラウド環境で最も重要な要素の一つであるコストダウンを実現するためには、CPU使用率を低く抑えることが重要です。アプリケーションインサイトチャートで検知したCPU使用率が高いことを確認した後に、スタックトレースチャートでその時間帯をドラッグすると、分析-スタックトレースレコーダ画面がポップアップで表示されます。ユーザがドラッグした領域の時間を自動的に照会するため、確認したい時間帯のスタックトレースリクエスト頻度分析を確認できます。
CPU観点からの性能の最適化は、コストダウンしたクラウドインスタンスに変換できることで、最終的に全体のコストダウンに繋がります。
問題の解決
原因を把握し、問題を解決したら、将来の同じ状況に対処するため、推奨設定でイベントの設定をすることをお勧めします。
勿論、アプリケーションインサイトダッシュボードを利用して、同じ過程で潜在的な問題を発見することがありますが、最終的な目標はユーザが検知できない問題に対して適切なイベントを設定して、事前に検知して対応することです。
モニタリングの本来の目標は、ダッシュボードを確認しなくても障害を素早く検知できる体制を作ることです。
最後に
いつまでも続くと思っていたオンプレミス環境のアプリケーションが、少しずつクラウド環境に移行することになると、モニタリングも新しいアプローチが必要です。
クラウド環境で運用中のサービスをモニタリングする状況を考え、JENNIFERの多様な機能を全て理解しなくてもアプリケーションの全般的な問題を解決できるダッシュボードを開発しました。この過程で今までできなかった複数のコンポーネントを新たに企画して開発し、既存のJENNIFERも多くの部分を改善しました。
その結果作られたダッシュボードが “アプリケーションインサイト”です。アプリケーションインサイトがクラウド環境のアプリケーションモニタリングに少しでもお役に立てれば幸いです。