Service Fabric で一般的なシナリオを診断する

この記事では、Service Fabric での監視と診断の領域でユーザーが遭遇した一般的なシナリオについて説明します。 示されているシナリオには、Service Fabric の 3 つのレイヤーであるアプリケーション、クラスター、およびインフラストラクチャがすべて含まれています。 各ソリューションでは、それぞれのシナリオを完了するために Application Insights、Azure Monitor ログ、Azure 監視ツールが使用されます。 各ソリューションの手順では、Service Fabric のコンテキストで Application Insights と Azure Monitor ログを使用する方法の概要をユーザーに説明します。

注意

この記事は最近、Log Analytics ではなく Azure Monitor ログという用語を使うように更新されました。 ログ データは引き続き Log Analytics ワークスペースに格納され、同じ Log Analytics サービスによって収集されて分析されます。 Azure Monitor のログの役割をより適切に反映させるために、用語を更新しています。 詳しくは、Azure Monitor の用語の変更に関するページをご覧ください。

前提条件と推奨事項

この記事のソリューションでは、次のツールを使用します。 これらを設定および構成しておくことをお勧めします。

アプリケーションのハンドルされない例外を表示するにはどうすればよいですか

  1. アプリケーションが構成されている Application Insights リソースに移動します。

  2. 左上の [検索] をクリックします。 次に、隣のパネルで [フィルター] をクリックします。

    AI の概要

  3. さまざまな種類のイベント (トレース、要求、カスタム イベント) が表示されます。 [例外] をフィルターとして選択します。

    AI のフィルター一覧

    Service Fabric Application Insights SDK を使用している場合、一覧にある例外をクリックすると、サービス コンテキストなどの詳細を確認できます。

    AI の例外

サービスで使用された HTTP 呼び出しを表示する方法を教えてください

  1. 同じ Application Insights リソースで、例外ではなく "要求" でフィルターを行って、実行されたすべての要求を表示できます。

  2. Service Fabric Application Insights SDK を使用している場合、互いに接続されたサービスの視覚表現と、成功/失敗した要求の数を確認できます。 左側の [アプリケーション マップ] をクリックします。

    AI の [アプリケーション マップ] ブレードAI の [アプリケーション マップ]

    アプリケーション マップの詳細については、アプリケーション マップのドキュメントをご覧ください。

ノードがダウンした場合に通知されるアラートを作成する方法を教えてください

  1. ノード イベントは Service Fabric クラスターによって追跡されます。 ServiceFabric(NameofResourceGroup) という名前の Service Fabric Analytics ソリューション リソースに移動します。

  2. [概要] ブレードの下部にあるグラフをクリックします。

    Azure Monitor ログのソリューション

  3. さまざまなメトリックを示す多数のグラフとタイルが表示されます。 いずれかのグラフをクリックすると、[ログ検索] に移動します。 ここで、クラスター イベントまたはパフォーマンス カウンターを照会できます。

  4. 次のクエリを入力します。 これらのイベント ID は、ノード イベントのリファレンスで確認できます。

    ServiceFabricOperationalEvent
    | where EventID >= 25622 and EventID <= 25626
    
  5. 上部の [新しいアラート ルール] をクリックします。これで、このクエリに基づいてイベントが到着した場合にいつも、選択した通信手段でアラートが届きます。

    Azure Monitor ログの新しいアラート

アプリケーション アップグレードのロールバックに関するアラートを受け取るには、どうすればよいですか

  1. 前と同じ [ログ検索] ウィンドウで、アップグレードのロールバックに関する次のクエリを入力します。 これらのイベント ID は、アプリケーション イベントのリファレンスで確認できます。

    ServiceFabricOperationalEvent
    | where EventID == 29623 or EventID == 29624
    
  2. 上部の [新しいアラート ルール] をクリックします。これで、このクエリに基づいてイベントが到着した場合にいつもアラートが届きます。

コンテナー メトリックの確認方法を教えてください

すべてのグラフと同じビューに、コンテナーのパフォーマンスに関するタイルがいくつか表示されます。 これらのタイルの作成には、Log Analytics エージェントとコンテナー監視ソリューションが必要です。

Log Analytics のコンテナー メトリック

Note

コンテナーの内部からテレメトリをインストルメント化するには、コンテナー用の Application Insights NuGet パッケージを追加する必要があります。

パフォーマンス カウンターを監視するにはどうすればよいですか

  1. Log Analytics エージェントをクラスターに追加したら、追跡したい特定のパフォーマンス カウンターを追加する必要があります。ポータルでソリューションのページから Log Analytics ワークスペースのページに移動します。ワークスペースのタブは左側のメニューにあります。

    Log Analytics ワークスペース タブ

  2. ワークスペースのページが表示されたら、同じく左側のメニューにある [詳細設定] をクリックします。

    Log Analytics の [詳細設定]

  3. [データ] > [Windows パフォーマンス カウンター] (Linux マシンの場合は [データ] > [Linux パフォーマンス カウンター]) の順にクリックして、Log Analytics エージェント経由でノードから特定のカウンターを収集することを開始します。 追加するカウンターの形式の例を次に示します。

    • .NET CLR Memory(<ProcessNameHere>)\\# Total committed Bytes

    • Processor(_Total)\\% Processor Time

      このクイック スタートでは、VotingData と VotingWeb というプロセス名が使用されます。そのため、これらのカウンターの追跡は次のようになります。

    • .NET CLR Memory(VotingData)\\# Total committed Bytes

    • .NET CLR Memory(VotingWeb)\\# Total committed Bytes

      Log Analytics のパフォーマンス カウンター

  4. これで、インフラストラクチャで処理されているワークロードと、リソース使用率に基づいて設定された関連アラートを確認できるようになります。 たとえば、プロセッサ使用率の合計が 90% を上回るか、または 5% 未満になったときに通知されるアラートを設定したい場合があります。 この場合に使用するカウンター名は "% Processor Time" です。 これは、次のクエリのアラート ルールを作成することで実行できます。

    Perf | where CounterName == "% Processor Time" and InstanceName == "_Total" | where CounterValue >= 90 or CounterValue <= 5.
    

Reliable Services と Reliable Actors のパフォーマンスを追跡する方法を教えてください

アプリケーションで Reliable Services または Reliable Actors のパフォーマンスを追跡するには、Service Fabric アクター、Service Fabric アクター メソッド、Service Fabric サービス、Service Fabric サービス メソッドのカウンターも収集する必要があります。 信頼できるサービスと、収集する必要があるアクター パフォーマンス カウンターの例を次に示します

Note

現在、Service Fabric のパフォーマンス カウンターは Log Analytics エージェントでは収集できませんが、他の診断ソリューションでは収集できます

  • Service Fabric Service(*)\\Average milliseconds per request
  • Service Fabric Service Method(*)\\Invocations/Sec
  • Service Fabric Actor(*)\\Average milliseconds per request
  • Service Fabric Actor Method(*)\\Invocations/Sec

Reliable ServicesReliable Actors に関するパフォーマンス カウンターの完全な一覧を確認するには、それぞれのリンクをご利用ください。

次のステップ