ChangeDetector

CA APM ChangeDetector を使用すると、CA Introscope でアプリケーション ファイルと設定の変更を監視およびレポートできます。 CA APM ChangeDetector は、実運用環境にある Web アプリケーションの変更を検出して、Web アプリケーションのパフォーマンスに関する問題の根本原因となっている変更を特定します。 問題の原因となっている変更を特定した後で、CA APM ChangeDetector を使用して問題を診断できます。CA APM ChangeDetector により、コード、アプリケーション サーバの設定、および接続されているシステムの設定に対して行われた、パフォーマンス問題の原因となっている可能性のある変更が明らかになります。
apmdevops97jp
CA APM ChangeDetector を使用すると、CA Introscope でアプリケーション ファイルと設定の変更を監視およびレポートできます。 CA APM ChangeDetector は、実運用環境にある Web アプリケーションの変更を検出して、Web アプリケーションのパフォーマンスに関する問題の根本原因となっている変更を特定します。 問題の原因となっている変更を特定した後で、CA APM ChangeDetector を使用して問題を診断できます。CA APM ChangeDetector により、コード、アプリケーション サーバの設定、および接続されているシステムの設定に対して行われた、パフォーマンス問題の原因となっている可能性のある変更が明らかになります。
変更はアプリケーションのさまざまな部分で発生するため、CA APM ChangeDetector は EPAgent (Environment Performance Agent)でもサポートされています。 EPAgent を使用すると、ほぼすべてのソースからアプリケーションのパフォーマンス情報を収集して、ユーザ環境に固有の変更データを監視することができます。 EPAgent の詳細については、「EP Agent」を参照してください。
2
2
ChangeDetector について
CA APM ChangeDetector は CA Introscope の拡張機能セットであり、アプリケーション環境内における変更の監視を可能にします。 ChangeDetector は CA Introscope に直接統合され、低いオーバーヘッドでリアルタイムに変更を検出します。 実運用環境で問題が発生した場合、CA Introscope ユーザは CA APM ChangeDetector を使用することにより、アプリケーションの変更とアプリケーションのパフォーマンスの変化を関連付けることができます。この関連付けによって、問題の原因となっている変更を切り分けることができます。
CA APM ChangeDetector は、エージェント内におけるアプリケーション コード、設定、および環境の違いを複数の期間にわたってレポートします。 これにより、アプリケーションのインスタンスが時期の間(今日と昨日、今日と先週など)にどのように変化しているかを把握できます。
CA APM ChangeDetector では、以下を表示できます。
  • テキスト ファイルおよびバイナリ ファイル、アーカイブ、システム プロパティ、アプリケーション コード、データベース テーブル、特定のデータベース クエリ結果セットなどの変更イベントのグラフィカル ビュー。
  • 変更が検出された時刻、変更の性質、テキスト ファイルのバージョンの差異などの、変更イベントの詳細情報。
  • 変更データの概要が表示される CA APM ChangeDetector ダッシュボード。
  • 変更の階層化ビューおよびヒストリカル ビュー(今日、昨日、先週)
  • アプリケーション内の変更を要約した Change Report。
ChangeDetector および CA Introscope 環境
以下の図では、CA ChangeDetector コンポーネントがどのように CA Introscope と対話するかを示します。
APM Change Detector Overview
使用シナリオ
以下のシナリオでは、CA APM ChangeDetector を使用して変更を検出し問題と関連付け、変更の内容を特定して、問題の修正方法を決定する様子を描いています。
問題の原因となっている変更の切り分け: 月曜朝の憂うつ
月曜日の朝 9 時、銀行のオンライン バンキング アプリケーションでパフォーマンス問題が発生し始めました。 CA Introscope により、ログインおよびその他の重要なトランザクションの応答時間が悪化し、SLA レベルに違反しているとのアラートが IT チームに報告されます。 怒ったユーザからカスタマ サービス デスクに電話がかかり始め、銀行口座にアクセスできないとの苦情が寄せられます。 コールセンターの責任者からこの問題がアプリケーション サポート グループに上げられ、アプリケーション サポート グループはただちに調査を開始します。
アプリケーション サポート チームは、CA Introscope ダッシュボードを確認して、パフォーマンスの悪化を分析します。 サポート チームは次に、パフォーマンス グラフを調査します。CA APM ChangeDetector がインストールされているため、変更データが CA APM ChangeDetector のグラフに直接統合されて表示されます。 サポート チームは、グラフに表示された変更の注釈と詳細情報を確認して、現在のパフォーマンス問題が発生する前に、先週末にかけて一連の変更が行われたことに気がつきます。 より詳しくズームインすると、変更は土曜日の夜にかけて、アプリケーションのメンテナンス時間中に行われたことがわかります。 サポート チームは、CA Investigator のツリー ビューをクリックしながら移動していき、さまざまなアプリケーション インスタンスのパフォーマンス グラフを調べます。 グラフが似ていることから、同じ時刻付近に各インスタンスで同様の変更が行われたことがはっきりとわかります。
問題の原因となっている可能性のある変更について、アプリケーション サポート チームはさらに詳細を調査します。 CA Introscope Investigator でアプリケーションの各コンポーネントをクリックすると、CA APM ChangeDetector ビューに各コンポーネントで行われた変更が表示されます。 アプリケーション ファイルを確認すると、37 ファイルが変更されており、そのうちの 3 ファイルが構成ファイルです。 CA APM ChangeDetector により、チームは、各変更が修正であり、それぞれがメンテナンス時間中に検出されたことを確認できます。 アプリケーション サーバの構成ファイルを 1 つ選択して、サーバにある現在のバージョンと変更前の旧バージョンのファイルを比較します。
原因が明らかになりました。 100 に設定されていたデータベース接続プールが、10 に変更されたようです。 この情報を得て、アプリケーション サポート マネージャは開発マネージャに連絡し、その結果、タイプ ミスがあったことがわかりました。また、処理速度の低下は、データベース接続の予期しない変更によるものであることが判明しました。
問題となる前に変更を検出する: 現場作業における問題の検出
CA Introscope のアラートが表示されます。 アプリケーション サポート チームに、Java アプリケーションで変更が発生したことが連絡されます。 この変更は予定外のものであるため(計画されたメンテナンス時間帯でないため)、アプリケーション サポート マネージャはパフォーマンス グラフの調査を開始します。 アプリケーションは今のところ通常どおり動作しているように見えますが、グラフから、数分前に変更がいくつか発生したことがわかります。 変更の上にカーソルを置くと、変更の詳細が表示されます。 システム変数に変更があるようです。
アプリケーション サポート マネージャは、まず CA Introscope Investigator を閲覧して、さまざまなアプリケーション コンポーネントに対する変更を探します。 CA APM ChangeDetector では、アプリケーションの変更がツリー形式で表示されます。 アプリケーション サポート マネージャは、さまざまな変更の検査を進めるにつれて、アプリケーション ファイルや構成ファイルでは何も変更されていないことがわかります。APM データベースの構成でも、何も変更されていないようです。 ただし、サポート マネージャは先述の CA Introcope アラートを確認して、JVM およびアプリケーション サーバの 4 つのシステム プロパティが変更されたことに気づきます。
検出された変数の変更のそれぞれをクリックすると、その変数名、変更が検出された時刻、および変更された値が表示されます。 見ると、Java ヒープ サイズを決定する変数が低くなっており、アプリケーションの負荷が高まると問題が発生する可能性があることがわかります。 UNIX システム管理者と共に確認すると、ハウスキーピング処理は完了しているが、この変更が与える影響の可能性について認識されていないことが判明しました。 変数の変更を元の値に戻して、パフォーマンス問題が発生するのを未然に防ぎました。