SOA 依存マップを使用して Web サービスの問題を切り分ける方法

SOA 依存マップを使用して Web サービスの問題を切り分けることができます。
apmdevops104jp
SOA 依存マップを使用して Web サービスの問題を切り分けることができます。
SOA 依存マップを使用して Web サービスの問題を切り分ける方法
標準的なサービス指向アーキテクチャ(SOA)環境では、Web サービスまたは ビジネス プロセス間に複雑な関係が存在します。これらのサービスは疎結合であるため、コンポーネント間の関係を追跡または理解するのは難しい可能性があります。組織では、複数のグループがサービスを開発およびデプロイします。たとえば、アプリケーションにはさまざまなグループが開発する複数レイヤのサービスが組み込まれていることがよくあります。これらの追加のサービス レイヤは視覚的に表示するのが難しく、アプリケーション開発者に知られていない場合があります。サービスのパフォーマンスは、依存するアプリケーションに関するミッション クリティカルな問題になることがあります。これらの「非表示の」サービスを視覚的に表示することにより、問題を特定し、切り分けて、解決するための追加のレベルの可視性が提供されます。
診断担当者として、自動および適時の方法で SOA 環境内のすべてのサービスを認識している必要があります。また、コンポーネント間の関係を操作して、あるサービスがほかのサービスをどこでどのように使用するか、潜在的なボトルネックがどこにあるかを把握することも必要です。リアル タイムおよび実運用環境ですべてのサービスの稼働状況および可用性を監視する場合、この情報は重要です。
[SOA 依存マップ]では、環境内のサービスの視覚的な表示が可能です。このマップは、さまざまなコンポーネントが相互にどのように関連するかを監視および理解するのに役立ちます。依存マップを使用して、リアル タイムで以下の情報をひとめで確認できます。
  • どのようなサービスがデプロイされているか
  • 新しいサービスおよび変更された依存関係
  • どのようにサービスが相互に関連しているか
  • どのようにクライアント側要求およびサーバ側応答が実行されているか
以下の図は、一般的なワークフローを示しています。
Triage Web Service Problems Using the SOA Dependency Map
以下の手順を実行します。
  1. 前提条件を確認します。
  2. アラート通知メッセージを表示します。
  3. エージェントにわたる Web サービス呼び出しの依存関係を表示して、アラートを調査します。
  4. 必要に応じて、以下のタスクを実行します。
    • 依存マップ ノードについてプライマリ メトリックを設定します。
    • エージェントのすべてのサービスを表示します。
    • サービスのすべてのオペレーションを表示します。
    • ノードの次の依存関係を表示します。
    • 依存関係があるノードの依存関係を非表示にします。
    • マップを保存します。
    • マップ ノードから関連する Investigator ツリー ノードにジャンプします。
アラート通知メッセージの表示
アラートによって通知アクションがトリガされると、アラート通知メッセージは常に自動的に表示されます。表示されるメッセージは、以下のアラート設定によって異なります。
  • 問題が発生している各期間で
    簡易アラートが警告状態または危険状態になった期間ごとに、問題メッセージが生成されます。
  • 重大度の増加時
    簡易アラートの状態が以下のように悪化した期間に、問題メッセージが生成されます。
    • 正常から警告
    • 正常から危険
    • 警告から危険
  • 重大度の変更時は常に
    状態の変化があったときに必ず、問題メッセージ、解決メッセージ、またはその両方が生成されます。たとえば、簡易アラートの状態が危険から警告に変化した場合、以下のメッセージを生成します。
    • 解決: 危険ステータスは解決されました。
    • 問題: 警告ステータスにまだ問題があります。
    この種類の解決アラートを利用するように設定した場合、解決メッセージが生成されるのは、警告または危険から状態が変化したときです。
  • 重大度の変更時に最終の状態のみレポート
    アラートの状態が変化した後の最終状態に対してのみ、問題メッセージまたは解決メッセージが生成されます。たとえば、簡易アラートの状態が危険から警告に変化した場合には、最終状態である警告に関する問題メッセージのみが生成されます。この種類の解決アラートを利用するように設定した場合、解決メッセージが生成されるのは、状態が正常へと変化したときに限られます。
アラートのソースを特定するには、メッセージ内の情報を使用します。アラートの名前には意味があり、ソースに関する情報を提供するため、その名前によってアラートを認識できます。
注:
アラート通知を生成するには、簡易アラートまたはサマリ アラートに対してアクションを定義する必要があります。
以下の手順に従います。
  1. WebView で、以下のいずれかのインジケータが発生した場合に、[アラート通知]リンクをクリックします。
    • 数字がリンクに表示されます。
    • [アラートを新規作成]ポップアップが表示されます。
    すべてのアラート通知が、メトリック名、しきい値、およびアラートがトリガされた時間などの詳細と共に表示されます。たとえば、CreditManagement Service の Average Response Time が警告レベルを超えたことを示すアラートを受信します。
    注:
    簡易アラートまたはサマリ アラートのステータスが変化したときに生成される情報メッセージには、問題メッセージと解決メッセージの 2 種類があります。
  2. (オプション)[空にする]をクリックし、アラート通知をクリアします。
  3. [閉じる]をクリックします。
  4. エージェント間での Web サービス コールの依存関係を表示することによって、このアラートの調査に進みます。
エージェント間での Web サービス コールの依存関係の表示
SOA 依存マップには、環境内のエージェントおよび SOA コンポーネントにわたるさまざまな Web サービス呼び出しが表示されます。このマップはサービスの論理インスタンスと物理インスタンスを区別します。この情報は、特定の物理インスタンスの問題がどのように論理サービスのパフォーマンス全体に影響を与えるかを判断するのに役立ちます。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーを移動し、依存関係を表示するノードを選択します。
  3. [ビューア]ペインで[SOA 依存マップ]タブをクリックします。
    SOA 依存マップが、選択したノードに基づいてデフォルト ビューで表示されます。たとえば、マップには、以下のノードの物理モードが表示されます。
    • エージェントの場合、エージェント レベルの依存関係がマップに表示されます。
    • Web サービス、クライアント、またはサーバ ノードの場合、サービス レベルの依存関係がマップに表示されます。
    • Web サービス ノードの場合、サービス レベルの依存関係がマップに表示されます。
    • オペレーション ノードの場合、オペレーション レベルの依存関係がマップに表示されます。
    注:
    現在選択している Investigator ツリー ノードに対して表示されたマップ ノードを使用して、新しい Investigator ツリー ノードに移動できます。たとえば、SOA 依存マップを使用して、広範囲のサービスのネットワークを展開できます。その後、マップ ノードをクリックして新しい Investigator ツリー ノードにジャンプし、そのノードからマップを再描画します。これにより、ワンクリック操作で特定の Investigator ツリー ノードまたは SOA 依存マップ ノードに絞り込んで、不要なネットワーク ブランチを除外できます。
  4. (オプション)以下のフィールドに入力して、マップを変更します。以下のフィールドには説明が必要です。
    • 表示
      依存マップを表示する方法を指定します。以下の、2 つのモードのいずれか、3 つのビューのいずれか、およびマップ ノードをオーバーレイするメトリックの 1 つを選択します。
      • 物理モード
        -- サービスおよびオペレーションの物理的な場所です。
      • 論理モード
        -- 物理的な場所に関係なく、類似した名前が付いているサービスおよびオペレーションのグループです。
        モードは、サービスの論理インスタンスと物理インスタンスを切り替えます。モードでは、物理インスタンスの問題がどのように論理サービスのパフォーマンス全体に影響するかを表示できます。SOA 依存マップがリフレッシュされ、選択したモードに基づいて SOA 環境が表示されます。デフォルトでは、Investigator ツリーで仮想エージェントのノードを選択していない場合は、SOA 依存マップには[物理モード]ビューが表示されます。仮想エージェント ノードおよびそのサブノードの場合、論理モードがデフォルトで表示されます。
      • エージェント
        -- エージェント間の上位レベルのフローで、それらのエージェントに展開されている Web サービス間の通信を表します。メトリック ブラウザ ツリーからエージェント ツリー ノードを選択すると、デフォルトではマップはこのビューで表示されます。マップ表示からビューを切り替えることができます。適切なコンテンツ タイプの選択により、SOA トポロジ全体を見失わずに、依存関係の特定の部分にドリルダウンできます。[エージェント]ビューは、論理モードでは適用できません。
      • サービス
        -- Web サービス エンドポイントの観点からのマップです。
        たとえば、[サービス]を選択し、Investigator ツリーのエージェント ノードをクリックします。マップには、そのエージェントのすべてのサービスおよびサービス レベルの依存関係が表示されます。そのノードのままで、別のコンテンツ タイプ「エージェント」を選択します。マップには、そのエージェント ノードの依存関係を持つすべてのエージェントが表示されます。たとえば、エージェント Tomcat01 のサービスにエージェント WebLogic02 で実行されているサービスの依存関係がある場合、マップには、Tomcat01 エージェント アイコンが表示されます。依存関係の矢印は WebLogic02 エージェント アイコンを指していて、エージェント レベルの依存関係が示されます。物理モードと論理モードの両方で適用可能です。
      • オペレーション
        -- Web サービス オペレーション(メソッド)の観点からのマップ。物理モードと論理モードの両方で適用可能です。
      • メトリック
        -- マップに表示されている Web サービスで使用可能なすべてのメトリックのリスト。デフォルトでは、リストの最初のメトリックは、マップの各ノードの現在のメトリック値に追加されます。メトリックがマップで表示されるノードに対して使用可能ではない場合、このリストは無効モードで表示されます。
    • ヒント
      ヒントを表示します。マウス カーソルを合わせたエレメントに応じて、ヒントに情報が表示されます。たとえば、ヒントには以下の情報が含まれていることがあります。
      • 完全修飾メトリック名。
      • メトリックの最小値および最大値。
      • 選択したタイム スライス内で Introscope によってレポートされたデータ ポイントの数。
      • マウス カーソルに最も近いデータ値のタイムスタンプ。
      • 比較の注釈(たとえば、メトリック値が定義されたしきい値を超過した場合の[高すぎる値])。
    • 依存関係
      マップ内の各ノードを 1 レベルずつ展開します。いずれかのノードに依存関係があると、次のレベルの依存関係が表示されます。
    • 折りたたむ
      各ノードのより低いレベルの依存関係を削除することにより、1 レベルずつマップ内の各ノードを折りたたみます。
    マップは更新され、選択したオプションに従って情報が表示されます。
  5. (オプション)マップを保存します。
例: モードを使用して、問題を解決します。
この例では、物理モードと論理モードの違い、およびそれらの切り替えが問題解決にどのように役立つかを示します。
サービスの問題を分析すると、根本原因としてあるサービスを特定しましたが、特定したサービスが分散サービスであることがわかりました。ロード バランサは 5 つの別個のアプリケーション サーバにサービスの要求を分散させています。
問題の原因を探るには、論理モードと物理モードを切り替えて、以下の情報を参照します。
  • あるサービスが別のサービスをいつ呼び出すかを決定する論理インスタンス間の関係。
  • サービス
    A
    のインスタンスがサービス
    B
    のインスタンスをいつ呼び出すかを決定する物理インスタンス間の関係。
  • 物理インスタンス間でパフォーマンスがどの程度異なっているか。
  • サービスへのトラフィックがインスタンス間でどのように分散されているか。
  • 物理インスタンスと論理インスタンス間のサービスのパフォーマンスを決定するために、選択したマップ ノードに重複して表示されるメトリック。
マップを使用して、以下の情報を表示します。
  1. 論理サービスでは、毎分 100 回の呼び出しが行われていますが、それは 5 つのインスタンスで行われています。100 回の呼び出しが個々のインスタンスにどのように分かれているのかを確認します。
  2. 100 回の呼び出しの 90 回が単一のインスタンスに偏っていることを発見します。その単一のインスタンスに問題を分離します。
  3. 問題を解決するため、そのインスタンスで負荷が増加した理由を分析します。
マップの保存
マップは、監視対象のサービス間で検出された最新の依存関係を常に反映します。データは定期的に確認されリフレッシュされますが、依存関係情報は履歴目的で保存されません。
通常、マップでの依存関係は静的です。組織は、実運用環境のアプリケーションをデプロイ、変更、または削除することがあります。ただし、後で確認できるように、依存関係データのスナップショットとして実際の環境の画像を保存しておくことが役に立ちます。ファイルを保存するには、印刷設定および印刷プレビューの機能を使用します。
以下の手順に従います。
  1. ツールバーの[印刷設定]ボタンをクリックします。
    印刷オプションのダイアログ ボックスが表示されます。
  2. 必要なオプションを選択します。以下のフィールドには説明が必要です。
    • 可視エレメント
      現在のウィンドウに表示されているマップの一部を印刷します。たとえば、拡大表示で 30 ノードのうちの 10 のノードのみを表示している場合、このオプションを選択すると、その 10 のノードのみの画像が作成されます。
    • ページに合わせる
      マップ全体を指定したページ数に合わせます。必要に応じてこのオプションを選択すると、ページに収まるようにマップが縮小されます。ページの列と行の両方の数に値 1 を使用し、画像を 1 ページに収まるようにします。画像の拡大された領域のみを表示するには、このオプションと[可視エレメント]を一緒に使用します。
    • ズーム レベル
      画質とファイル サイズを指定します。100 は、画像出力用の最適な画質です。画像の品質が高くなるほど、保存される画像のファイル サイズおよびページ数が大きくなります。
    • 現在のズーム レベル
      現在の拡大レベルで画像全体を印刷します。複数のページにまたがる可能性があります。拡大された領域のみを画像に表示する場合は、このオプションと[可視エレメント]を一緒に使用します。
    • テキスト
      印刷ファイルのキャプションを指定します。
  3. [OK]をクリックします。
    ファイルが作成されます。
  4. ツールバーの[印刷プレビュー]ボタンをクリックします。
    作成した印刷ファイルが表示されます。
  5. ブラウザ オプションを使用して、目的の場所にファイルを保存します。たとえば、Firefox のドロップダウン リストを使用し、[名前を付けてページを保存]を選択します。
依存マップ ノードについてプライマリ メトリックを設定する
SOA 依存マップ上で Introscope の標準メトリックおよび SOA 固有のメトリックの両方を表示できます。SOA 依存マップの各サービス ノードおよびオペレーション ノードの下で、プライマリ メトリックには、最も注目度の高い Introscope の標準メトリックが表示されます。SOA 依存マップのエージェント ノード、サービス ノード、またはオペレーション ノードにマウス カーソルを合わせると、ヒントには、表示するように選択したメトリックが表示されます。
SOA 依存マップでエージェントおよびサービスについて表示されるメトリックは、そのエージェントまたはサービスの下にあるすべてのオペレーションの集計値です。メトリックは、SOA 依存マップで現在選択または表示されているマップ ノードのみの値ではありません。たとえば、サーバ側サービスのマップ ノードにマウス カーソルを合わせると、ヒントには、表示されるように選択したメトリックが表示されます。マップ ノードに関するメトリックには、依存しているクライアント ノードおよび監視対象外のクライアントの呼び出しが含まれることがあります。また、メトリックには、SOA 依存マップに表示されていないクライアント(たとえば C++ クライアント)の値が含まれることもあります。クライアントの起動はすべて、サーバ側のメトリック計算に影響を与えます。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーで、クライアント ノードまたはサーバ ノードの下の個々のサービスを選択します。
  3. [SOA 依存マップ]タブをクリックします。
  4. [SOA 依存マップ]のツールバーで、メトリックのドロップ ダウン リストから Introscope の標準メトリックのいずれかを選択します。
    注:
    SOA 依存マップのデフォルトのプライマリ メトリックは[平均応答時間]です。
    プライマリ メトリックを設定した後、依存マップ内のマップ ノードのすべてには、そのメトリックの現在の値が表示されます。
  5. マップ ノードにマウス カーソルを置きます。
    ヒントに、収集されたデータ ポイントの数について最小、最大、現在の値などの情報が表示されます。
エージェントのすべてのサービスの表示
[エージェント]コンテンツ タイプを表示している場合、SOA 依存マップを展開して、指定したエージェントのすべてのサービスを表示できます。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーで、クライアント ノードまたはサーバ ノードの下の個々のサービスを選択します。
  3. [SOA 依存マップ]タブをクリックします。
    対応するクライアントまたはサーバ サービスが SOA 依存マップに表示されます。第 1 レベルの依存関係が、対応するエージェントを表す 1 つ以上のボックス内に表示されます。
  4. SOA 依存マップで、関連するエージェントを右クリックし、[全てのサービスを表示]を選択します。
    エージェントのすべてのサービスが SOA 依存マップに表示されます。
サービスのすべてのオペレーションの表示
[サービス]コンテンツ タイプを選択した後、SOA 依存マップを展開して、特定のサービスのすべてのオペレーションを表示できます。たとえば、CA APM for SOA で、1 つのオペレーションが、「直接依存クリティカル オペレーション 23 間接依存クリティカル オペレーション」として識別されて表示されているとします。この識別は、23 個のオペレーションまたはサービスがこのオペレーションに依存することを意味します。このオペレーションでのパフォーマンスの低下は、23 個のその他のオペレーションに影響を与えます。影響を受けるすべてのサービスおよびオペレーションのリストを取得するには、すべてのオペレーションを表示します。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーで、調査するサービスの個々のオペレーションを選択します。
  3. [SOA 依存マップ]タブをクリックします。
    対応するクライアントまたはサーバ オペレーションが SOA 依存マップに表示されます。第 1 レベルの依存関係が、対応するサービスおよびエージェントを表す 1 つ以上のボックス内に表示されます。
  4. サービス マップ ノードを選択して右クリックし、[すべてのオペレーションを表示]を選択します。
    クライアント側またはサーバ側サービスのすべてのオペレーションが SOA 依存マップに表示されます。
  5. (オプション)その他のアクションを実行します。
    • マップを移動するツールバー オプションを使用します。
    • 依存関係とオペレーションを展開します。
    • より多くのメトリックを表示します。
    • 各ノードをクリックして、トランザクション パスを識別します。
      このアクションは、次のオペレーションに結び付ける接続矢印を強調表示します。[印刷プレビュー]アイコンを使用して、マップをビットマップ ファイルで表示できます。
  6. エンジニアを派遣して、パフォーマンスの低下の根本原因を診断します。
ノードの次の依存関係の表示
SOA 依存マップ ノードを表示している場合、任意のマップ ノードをクリックして、そのノードの依存関係の次のレベルを表示できます。このオプションは、選択したノードにまだ依存ノードが表示されていない場合にのみ使用可能です。このオプションは、次のレベルの依存関係を見つけるのに有用です。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーで、SOA 依存マップを表示できる Investigator ツリー ノードを選択します。
  3. [SOA 依存マップ]タブをクリックします。
  4. 依存関係を表示していないマップ ノードを右クリックし、[次の依存関係を表示]を選択します。
    SOA 依存マップに、そのノードの次のレベルの依存関係が表示されます(存在する場合)。依存関係がない場合、「追加可能な依存関係はありません。」というメッセージがメッセージ バナーに表示されます。
ノードの依存関係を非表示にする
SOA 依存マップ ノードを表示している場合、選択したノードの依存関係をすべて非表示にできます。このオプションは、選択したノードの依存関係が表示されている場合のみ使用可能です。このオプションは、マップから不要なノードを削除する場合に役立ちます。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. Investigator ツリーで、SOA 依存マップを表示できるノードを選択します。
  3. [SOA 依存マップ]タブをクリックします。
  4. 依存関係を表示しているマップ ノードを右クリックし、[依存関係を非表示にする]を選択します。
    SOA 依存マップは、そのノードのすべての依存関係を削除します。
マップ ノードから関連する Investigator ツリー ノードにジャンプする
SOA 依存マップ ノードを表示している場合、任意のマップ ノードをクリックして、Investigator ツリー内の該当するコンポーネントに移動できます。新しい Investigator ツリー ノードにジャンプすると、SOA 依存マップはその新しい Investigator ツリー ノードを開始点として再表示されます。このアクションでは、選択した場所を使用して、マップ ノードの位置を再設定できます。
以下の手順に従います。
  1. WebView で、[Investigator]をクリックします。
  2. ツリーで、クライアント ノードまたはサーバ ノードの下のサービスの個々のオペレーションを選択します。
  3. [SOA 依存マップ]タブをクリックします。
  4. SOA 依存マップが物理モードを使用していることを確認します。
  5. SOA 依存マップのマップ ノードを右クリックし、[ツリー内のこの場所にジャンプ]を選択します。
    新しい Investigator ツリー ノードが選択され、SOA 依存マップの新しい開始点になります。