アプリケーションの監視

このセクションでは、AppFabric ダッシュボードを使用して WCF サービスや WF サービスを含む .NET Framework アプリケーションの正常性と有効期間を監視する方法について説明します。AppFabric ダッシュボードは Windows Server AppFabric の重要な機能で、.NET Framework Version 4 サービスの監視とトラブルシューティングを行います。AppFabric ダッシュボードに表示されるデータは、サービスの現在 (リアルタイム) のメトリックと履歴メトリックです。現在のメトリックには永続ワークフローに関する現在の情報が表示され、それらの状態を制御できます。ダッシュボードの履歴メトリックでは、特定期間におけるサービスの正常性に対する可視性が得られます。

AppFabric ダッシュボードには、AppFabric で管理される .NET Framework サービスの状態についてより把握できるように、次の情報が表示されます。

  • AppFabric ダッシュボードは永続ワークフローのインスタンスを追跡し、実行中 (アクティブまたはアイドル) または中断されたインスタンス数に関する状態データを示します。また、AppFabric ダッシュボードには、個々の永続的な WF インスタンスを監視するドリルダウン機能があり、永続的なワークフローに関する独自のコマンドを発行してそれらの実行を制御できます。

  • WF サービスは、通常の実行中に生成するイベントを保存することで、AppFabric によりさまざまな詳細度で追跡されます。AppFabric ダッシュボードには、正常性の監視レベル以上で監視が有効となっている WF サービスの正常性の履歴が表示されます。

  • .NET Framework のすべての WCF サービスおよび WF サービスはクライアントおよびその他のサービスとの通信に WCF を使用しています。AppFabric ダッシュボードは、成功および例外の累積合計を、受信した WCF 呼び出しの結果として監視および表示します。また、サービス例外に関連する失敗した呼び出しまたはエラーが発生した呼び出しについての情報も表示します。

AppFabric ダッシュボードは、ローカルの AppFabric サーバーおよびサーバー ファーム内で同じ永続化ストアおよび監視ストアを使用するように構成されているリモート AppFabric サーバーに展開されたサービスに対してメトリックを提供します。AppFabric では、ローカル サーバーまたはすべてのサーバーでメトリックのフィルター処理が可能です。また、AppFabric ダッシュボードを使用して、選択したサーバーに対して表示されるデータの期間を時間、日、週、または監視ストアの履歴全体で調整できます。

AppFabric ダッシュボード セクション

AppFabric ダッシュボードは主に 3 つのセクションに分かれています。[永続的な WF インスタンス]、[WCF 呼び出しの履歴]、および [WF インスタンスの履歴] です。各セクションには特定の機能があり、これらのセクションを組み合わせるとサービスの有効期間または発生した問題のより詳細な情報が得られます。現在のデータまたは履歴データはさまざまなセクションで表示されます。対応する右上の上下矢印をクリックすると、セクションを展開または折りたたむことができます。

固有のサマリー メトリックは各セクション内のさまざまなセクションで表示されます。たとえば、[WCF 呼び出しの履歴] セクションでは、[完了]、[エラー]、および [スロットル ヒット] という 3 つのサマリー呼び出しメトリックがあります。サマリー値をクリックするとそのセクションに関連する詳細なページに移動します。[WCF 呼び出しの履歴] セクションでは、3 つのサマリー メトリックのいずれかをクリックすると [追跡対象イベント] ページに移動します。3 つのメトリックはすべて同じページに移動しますが、各メトリックは監視ストアに保存されているイベント データに対して特定のクエリにマップするため、ほとんどの場合で表示されるデータが異なります。次のリストは各セクションおよびそのサマリー値とメトリック ページの関係を表しています。

Dublin ダッシュボード

  • [永続的な WF インスタンス]。このセクションには、AppFabric ダッシュボードが表示された時点の永続化ストアの状態を確認するとき、[アクティブ]、[アイドル]、または [中断] 状態の永続ワークフロー サービス インスタンスの「現在の」サマリーが表示されます。監視機能を使用するように追加構成された永続ワークフローでは、その履歴メトリックもまた他の 2 つの AppFabric ダッシュボード セクションに反映されます。これらのサマリー リンクのいずれかをクリックすると、対応する [永続的な WF インスタンス] ページに移動します。[永続的な WF インスタンス] セクションを展開すると、[アクティブ]、[アイドル]、または [中断] 状態のインスタンスが最も多い上位 5 つの [アクティブ]、[アイドル]、または [中断] 状態の .NET Framework 4 ワークフロー サービスが表示されます。永続的なワークフローを監視する方法の詳細については、「永続ワークフローのリアルタイム監視」を参照してください。

    ヒント

    AppFabric は WCF サービス インスタンスの永続化をサポートしていません。ワークフロー (WF) サービス インスタンスのみが AppFabric 永続化機能を使用できます。

  • [WCF 呼び出しの履歴]。このセクションには、監視機能が有効になっている .NET Framework WCF および WF サービスの WCF 呼び出し履歴のサマリーが表示されます。[期間] ドロップダウン リストで選択した期間内すべての WCF の [完了した呼び出し]、[エラー]、および [スロットル ヒット] のサマリーが表示されます。これらのサマリー リンクのいずれかをクリックすると、対応する [追跡対象イベント] ページに移動し、移動元のカテゴリに特定のクエリ結果データが表示されます。[WCF 呼び出しの履歴] セクションを展開すると、完了した WCF 呼び出しの履歴および WCF サービス例外が最も多い上位 5 つのサービスが表示されます。また、サービス例外 (ほとんどが失敗した呼び出しまたはエラーが発生した呼び出しによるもの) およびユーザー定義のエラーによるエラーの詳細も表示されます。詳細については、「WCF 呼び出しメトリックを使用した履歴の監視」を参照してください。

  • [WF インスタンスの履歴]。このセクションには、[期間] ドロップダウン リストで選択した期間内で、監視機能が有効である .NET Framework 4 ワークフロー サービス インスタンスの [アクティブ化]、[失敗]、および [完了] の履歴サマリーが表示されます。これらのサマリー リンクのいずれかをクリックすると、対応する [追跡対象 WF インスタンス] ページに移動し、移動元のカテゴリに関するクエリ結果データが表示されます。[WF インスタンスの履歴] セクションを展開すると、[インスタンスのアクティブ化] および [正常に完了しなかったインスタンス] が最も多い WF サービスの上位 5 つが表示されます。また、結果 (回復済みまたは未回復) で正常に完了しなかったインスタンスを分類します。詳細については、「ワークフロー メトリックを使用した履歴の監視」を参照してください。

AppFabric ダッシュボード メトリック

AppFabric ダッシュボード メトリックは、IIS 階層で選択したレベルまたは "スコープ" で、Windows プロセス アクティブ化サービス (WAS) にホストされている .NET Framework 4 WCF サービスおよび WF サービスに対して表示されます。スコープのレベルにはサーバー、サイト、およびアプリケーションがあります。スコープは IIS マネージャーの [接続] ウィンドウ (左側のウィンドウ) の IIS 階層でサーバー、サイト、またはアプリケーションを選択することにより決定されます。このセクションに表示されるメトリックのコレクションはすべてのスコープで同じです。つまり、すべてのスコープで同じメトリック名が表示されますが、値はスコープに含まれる内容によって異なります。IIS 階層で選択するレベルを変更すると、サーバーまたはサイト上のすべてのサービスのインスタンスからのメトリックを表示することも、選択したアプリケーションのみに関連するメトリックを表示することもできます。特定のビューで表示される監視データの量は、その特定のスコープの [WCF と WF の構成] ダイアログ ボックスにある [監視] タブで構成した値に対応します。

ヒント

監視対象のアプリケーションの監視レベルが正常性の監視以上の場合、AppFabric ダッシュボードに表示されるデータ量は変更されません。ただし、スコープを変更して監視が有効な状態の異なるサービス数を含める場合、メトリックは変更されます。

スコープとメトリックの構成に関する詳細については、「サーバー、サイト、またはアプリケーションの WCF と WF の構成: 監視 タブ」および「サーバー、サイト、アプリケーション、および仮想ディレクトリの [構成] ダイアログ ボックス」を参照してください。

監視および永続化の既定値

.NET Framework 4 サービスが AppFabric にインストールされると、次の 2 つの監視の既定値が自動的に構成されます。これらの設定はサーバー、サイト、アプリケーション、またはサービス構成ダイアログ ボックスの [監視] タブで変更できます。詳細については、「サーバー、サイト、またはアプリケーションの WCF と WF の構成: 監視 タブ」および「サービスの構成:監視 タブ」を参照してください。

  • [監視レベル]。監視は既定ですべてのサービスに対して有効になっています。監視の既定レベルは [正常性の監視] に構成されており、これは 5 つある監視設定 ([トラブルシューティング]、[エンドツーエンド監視]、[正常性の監視]、[エラーのみ] および [オフ]) の中レベルです。[正常性の監視] はアプリケーションのメトリックの正常性を日常的に監視するのに最適です。またダッシュボード上で使用するすべてのメトリックの最低要件です。監視には、サービス、WCF および WF イベントおよびその他のイベント間におけるメッセージ フローの追跡が含まれます。また、より詳細度の低い [エラーのみ] レベルのエラーも含まれており、簡素化されたトラブルシューティングをサポートしています。問題が発生したら、より詳細度の高い監視レベルを有効にすることで監視データ量を増やし、問題を解決してから、監視レベルを既定の [正常性の監視] 設定に戻すことができます。監視レベルと監視要件に最適なレベルを選択する方法の詳細については、「監視を構成する」を参照してください。

    監視データはイベント コレクション サービスで収集され、DefaultMonitoringConnectionString 接続文字列を使用して既定の監視ストアに書き込まれます。このデータは [追跡対象イベント] ページに表示されるデータに対応しています。[監視] タブでは、[データベース イベント コレクションを有効にする] が既定で有効に設定されており、[追跡対象イベント] ページに構成した監視ストアの全データが表示されます。イベント コレクションを無効にすると、それ以降の新しいイベントは表示されなくなります。ただし、過去から追跡されたイベントがまだストア内に存在する場合、[追跡対象イベント] ページにそれらが表示されます。過去のイベントを表示しないようにするには、既存の接続文字列を手動で構成から削除する必要があります。詳細については、「イベント コレクション サービスの構成」を参照してください。

    特定の監視レベルを構成するとき、そのレベルに対応する既定の追跡プロファイルが有効になります。追跡プロファイルはワークフロー インスタンスから取得されるイベントの種類および必要な情報に対するフィルターの宣言型定義です。既定のプロファイルがお客様の監視要件を満たさない場合、カスタム追跡プロファイルを記述することもできます。追跡プロファイルとそれらの構成方法の詳細については、「追跡の構成」を参照してください。

  • 診断メッセージ ログとトレース。 [データベース イベント コレクション] および [監視レベル] とは異なり、[診断メッセージ ログとトレース] は既定で表示されます。この機能ではデータを監視ストアに送信する代わりに、[サービス トレース ビューアー] ユーティリティで表示できる構成可能なファイルに送信します。[診断メッセージ ログとトレース] の設定はダッシュボードに表示される内容に影響を与えません。これは AppFabric ダッシュボードを超えた追加的なメカニズムであり、.NET Framework トレースおよびログ メカニズムによりトラブルシューティングをサポートします。この機能の構成の詳細については、「[診断トレースとメッセージ ログの構成] ダイアログ ボックス」を参照してください。

既定の監視機能に加え、AppFabric には既定の永続化機能もあります。.NET Framework 4 WF サービスが AppFabric にインストールされると、永続化が既定で自動的に構成されます。監視設定のように、サーバー、サイト、アプリケーションまたはサービス構成ダイアログ ボックスの [永続化] タブで、ワークフローの永続化構成を変更できます。ワークフロー永続化データは DefaultPersistenceConnectionString 接続文字列により既定の永続化ストアに書き込まれます。詳細については、「サーバー、サイト、アプリケーション、または仮想ディレクトリの WCF と WF の構成:」および「サービスの構成:ワークフロー永続化タブ」を参照してください。

監視および永続化ストアとダッシュボード メトリック

AppFabric ダッシュボード メトリックは監視ストアと永続化ストアの両方から取得されます。永続化および監視の構成方法によっては、現在のスコープに複数の監視または永続化ストアが存在する場合があります。サービスが異なるストアを使用するように構成されている場合、ダッシュボードでは、それらのサービスに関連付けられたすべてのストアに対するメトリックの組み合わせが現在のスコープに表示されます。[永続的な WF インスタンス] メトリックは 1 つまたは複数の永続化ストアからのワークフロー ストア データのサマリーです。[追跡対象 WF インスタンス] および [WCF 呼び出しの履歴] メトリックは 1 つまたは複数のストアからのデータのサマリーです。

重要

負荷がかかった状態では、監視データベース内のステージング テーブルに、SQL エージェントのジョブで処理される必要があるレコードのバックログが発生することがあります。その結果、AppFabric ダッシュボードに表示された情報は、10 分以上経過すると古い情報になります。また、時間枠をより限定的な最近の期間に (既定の 24 時間ではなく) 制限すると、新しいトランザクションもバックログになっているため、新しいトランザクションは表示されません。

  • [永続的な WF インスタンス]。これらのメトリックは、ダッシュボードが呼び出されたとき、1 つまたは複数の永続化ストアからの永続的なワークフロー インスタンスの現在の状態を表します。ワークフローがこのセクションで提示される情報を持つには、永続化を使用するように設計されている必要があります。実行時間の長いワークフロー、またはワークフローの有効期間中に保存する必要がある機密性の高い、あるいは計算された重要なデータを扱うワークフローは、ほとんどの場合 .NET Framework 4 永続化を使用しています。通常、永続化を使用しないワークフローは短時間で実行され、プロセスが誤って終了した場合にワークフローの状態が保存されていなくても重大な問題にはなりません。

    また、AppFabric の永続化機能を利用するには、AppFabric 内の WF サービスに対して永続化が構成されている必要があります。AppFabric には、永続化機能で永続化があるように書き込まれたワークフローを、永続化ストアと管理ツールによりホストする機能があります。サービスに対して AppFabric の永続化を有効にする方法の詳細については、「ワークフロー永続化を構成する」を参照してください。

  • [WCF 呼び出しの履歴]。このメトリックは、サービスに対する 1 つまたは複数の監視ストアからの WCF 完了呼び出し数、エラー数、およびスロットル ヒット数を選択した AppFabric ダッシュボードのスコープ内で表示した履歴サマリーです。このデータを追跡するには、該当するサービスに対して AppFabric イベント コレクションが有効になっている必要があります。サービスに対してイベント コレクションを有効にする方法の詳細については、「イベント コレクション サービスの構成」を参照してください。

  • [WF インスタンスの履歴]。このメトリックは 1 つまたは複数の監視ストアからの追跡対象 WF インスタンスの履歴サマリーです。.NET Framework 4 ワークフロー サービス インスタンスの [アクティブ化]、[失敗]、および [完了] が要約されたものです。このデータを追跡するには、[正常性の監視] 以上の AppFabric 監視レベルが有効になっている必要があります。サービスに対して監視レベルを有効にする方法の詳細については、「監視を構成する」を参照してください。

次の表は、AppFabric ダッシュボード メトリックが WF サービスについて表示されるときを、サービス構成ごとにまとめたものです。

.NET Framework サービスの種類 永続化の構成 有効な監視レベルの構成 永続的な WF インスタンス セクション メトリック (永続的な WF インスタンス ページ) WCF 呼び出しの履歴セクション メトリック (追跡対象イベント ページ) WF インスタンス履歴セクション メトリック (追跡対象 WF インスタンス ページ)

WF サービス

なし

なし

なし

なし

なし

WF サービス

あり

なし

あり

なし

なし

WF サービス

あり

あり

あり

あり

あり

WF サービス

なし

あり

なし

あり

あり

次の表は、AppFabric ダッシュボード メトリックが純粋な WCF サービス (ワークフローなし) について表示されるときを、サービス構成ごとにまとめたものです。AppFabric では WCF サービスに対する永続化をサポートしないため、それに関するデータを表示するセクションは [WCF 呼び出しの履歴] のみです。

.NET Framework サービスの種類 永続化の構成 有効な監視レベルの構成 永続的な WF インスタンス セクション メトリック (永続的な WF インスタンス ページ) WCF WCF 呼び出しの履歴セクション メトリック (追跡対象イベント ページ) WF インスタンス履歴セクション メトリック (追跡対象 WF インスタンス ページ)

純粋な WCF サービス

N/A

なし

なし

なし

なし

純粋な WCF サービス

N/A

あり

なし

あり

なし

ユーザー定義の WCF イベント

.NET Framework 4 には、Windows Communication Foundation (WCF) ユーザー イベントを .NET Framework によって提供された Windows イベント トレーシング (ETW) イベント ストリームに、プログラムによって挿入する機能があります。少なくとも [正常性の監視] レベルを使用するように構成されたアプリケーションに対して、すべてのユーザー イベントが既定で生成されてキャプチャされます。詳細度の低い [エラーのみ] レベルでは、WCF エラーのユーザー イベントのみが生成されてキャプチャされます。AppFabric はこれらの WCF ユーザー イベントを収集して監視データ ストアに格納します。ユーザー定義イベントの情報は 2 つのページに表示できます。

  • AppFabric ダッシュボード ページは一定時間におけるエラー重要度レベルで生成されたユーザー イベント数をエラー サマリー メトリック カウンターに表示します。

  • [追跡対象イベント] ページには、イベント フィールドで [すべての WCF イベント] オプションが選択されているとき、または [クエリ コントロール] でイベント フィールドが指定されていないとき、エラー関連またはそれ以外のすべてのユーザー定義イベントが表示されます。クエリ ビルダーでは、イベント条件の [すべての WCF エラー] オプションの下にユーザー定義のサブオプション WCF エラーがあります。ユーザー定義のエラー イベントが [追跡対象イベント] ページで選択されているとき、エラーは [詳細] ウィンドウの [エラー] タブに表示されます。

プログラムによってユーザー イベントを ETW ストリームに追加する方法を示すサンプルについては、「WCF 分析トレース」 (https://go.microsoft.com/fwlink/?LinkId=184956) を参照してください。

複数のストアに対する AppFabric ダッシュボードのサポート

AppFabric ダッシュボードでは複数の永続化および監視データ ストアのデータを表示することができます。AppFabric ダッシュボードでは、指定したサービスの永続化データは単一の永続化ストアに、指定したアプリケーションの監視データは単一の監視データ ストアに存在すると見なします。1 つ以上の監視または永続化ストアを使用する場合、アプリケーションまたはサービスがストアを切り替えるときに古いデータを元のストアから削除する必要があります。使用している環境で他のアプリケーションまたはサービスが元のストアを使用している場合、この処理を行わないと予期しない結果または不整合な結果が発生する場合があります。

たとえば、次の例について検討してみましょう。WCF や WF サービス 1 および 2 を含むアプリケーションが監視データ ストア X を使用するように構成されているとします。アプリケーション 1 は後に監視データ ストア X の代わりに Y を使用するように再構成されますが、アプリケーション 1 の古いデータは監視データ ストア X に残ったままです。 アプリケーション スコープで AppFabric ダッシュボードを表示するとき、アプリケーションに関連付けられるのは 1 つのアプリケーションのみのため、アプリケーション 1 のメトリックは現在のストア Y からのデータを正しく表示します。しかし、サーバーまたはサイト レベルで AppFabric ダッシュボードを表示するとき、カウンターには現在のストア Y からのアプリケーション 1 に対する正しいデータと古いストア X からの古いデータが含まれます。

この例では、アプリケーションを新しい監視ストア Y に構成するときに、古い監視ストア X にあるアプリケーション 1 からのデータを消去するのが適切な手続きです。これにより、AppFabric ダッシュボードにはアプリケーション 1 に対する正しい情報が表示されます。このクリーンナップは適切なデータベース ツールと方法を使用してデータベース レベルで実行できます。

大文字と小文字を区別したクエリ

SQL Server の監視データベースがバイナリ照合順序を使用するように構成されている場合、AppFabric ダッシュボードのクエリ ビルダーを使用したクエリのパラメーターでは大文字と小文字を区別します。その場合、AppFabric ダッシュボードのクエリ ビルダーでクエリの句を指定するときに [コンピューター名]、[サイト]、および [仮想パス] の文字列で大文字と小文字を正確に指定する必要があります。大文字と小文字の区別の問題を避けるため、ASEventSourcesTable を手動で変更し、照合順序で大文字と小文字を区別しないようにできます。ASEventSourcesTable には、Computer、Site、VirtualPath、ApplicationVirtualPath、ServiceVirtualPath などのフィールドが含まれています。

このセクションの内容

関連項目

概念

アプリケーションの管理

  2011-12-05