アプリケーション マップ: 分散型アプリケーションをトリアージする

アプリケーション マップは、分散アプリケーションの論理構造を表します。 アプリケーションの個々のコンポーネントは、記録されたテレメトリの "roleName" または "name" プロパティによって特定されます。 これらのコンポーネントは、マップでは円で表され、"ノード" と呼ばれます。ノード間の HTTP 呼び出しは、これらのノードを接続する矢印で表されます。この矢印を、"コネクタ" または "エッジ" と呼びます。呼び出しを行うノードは呼び出しの "ソース" であり、受信するノードは呼び出しの "ターゲット" です。

アプリケーション マップを使用すると、分散アプリケーションのすべてのコンポーネントを対象にパフォーマンスのボトルネックや障害のホットスポットを特定できます。 マップ上の各ノードは、アプリケーション コンポーネントまたはその依存関係を表し、正常性の KPI やアラートの状態を保持しています。 任意のコンポーネントを選択して、さらに詳しい診断結果 (Application Insights イベントなど) にアクセスすることができます。 アプリで Azure サービスを使用している場合は、Azure Diagnostics (SQL Database アドバイザーのアドバイス情報など) を選ぶこともできます。

アプリケーション マップには、サービスの正常性に関する迅速な調査を支援するインテリジェント ビューも用意されています。

コンポーネントとは

コンポーネントは、分散型またはマイクロサービス アプリケーションの個別にデプロイできる部分です。 開発者と運用チームには、これらのアプリケーション コンポーネントによって生成されたテレメトリに対して、コード レベルの可視性またはアクセスがあります。 次に例を示します。

  • コンポーネントは、チームや組織がアクセスできない可能性がある Azure SQL、Azure Event Hubs などの "監視された" 外部依存関係 (コードまたはテレメトリ) とは異なります。
  • コンポーネントは、任意の数のサーバー、ロール、またはコンテナー インスタンス上で実行されます。
  • サブスクリプションが異なる場合でも、コンポーネントは別個の Application Insights リソースにすることができます。 また、1 つの Application Insights リソースにレポートする異なるロールにすることもできます。 プレビュー マップのエクスペリエンスには、各コンポーネントがその設定方法に関係なく表示されます。

複合アプリケーション マップ

関連するアプリケーション コンポーネントの階層を横断的に見ながら完全なアプリケーション トポロジを表示できます。 コンポーネントは、さまざまな Application Insights リソースにすることも、単一のリソース内の各種ロールにすることもできます。 アプリケーション マップでは、Application Insights SDK がインストールされているサーバー間での HTTP 依存関係呼び出しに従ってコンポーネントを検索します。

このエクスペリエンスでは、最初にコンポーネントが順次検出されます。 アプリケーション マップを初めて読み込むとき、一連のクエリがトリガーされて、対象コンポーネントに関連したコンポーネントが検出されます。 左上隅のボタンには、対象アプリケーション内のコンポーネント数が表示され、検出されるにつれて更新されます。

[マップ コンポーネントの更新] を選ぶと、その時点までに検出されたすべてのコンポーネントでマップが更新されます。 アプリケーションの複雑さによっては、この更新の読み込みに数分かかることがあります。

コンポーネントがすべて 1 つの Application Insights リソース内のロールである場合、この検出ステップは不要です。 そのようなアプリケーションでは、そのすべてのコンポーネントが初回読み込みで認識されます。

アプリケーション マップの例を示すスクリーンショット。

このエクスペリエンスが目指す主な目的の 1 つは、何百というコンポーネントを含む複雑なトポロジを視覚化することです。

いずれかのコンポーネントを選ぶと、関連する分析情報を表示したり、そのコンポーネントについてのパフォーマンスと障害のトリアージ機能にアクセスしたりすることができます。

アプリケーション マップの詳細を示す図。

エラーを調査する

[エラーの調査] を選ぶと、[エラー] ペインが開きます。

[エラーの調査] ボタンを示すスクリーンショット。

[エラー] 画面を示すスクリーンショット。

パフォーマンスを調査する

パフォーマンスの問題のトラブルシューティングを行うには、[パフォーマンスの調査] を選びます。

[パフォーマンスの調査] ボタンを示すスクリーンショット。

パフォーマンス画面を示すスクリーンショット。

詳細の表示

[詳細に移動] ボタンをクリックすると、呼び出し履歴レベルでビューを提供するエンドツーエンドのトランザクション エクスペリエンスが表示されます。

[詳細に移動] ボタンを示すスクリーンショット。

[エンドツーエンド トランザクションの詳細] 画面を示すスクリーンショット。

ログに表示 (Analytics)

さらにアプリケーション データのクエリと調査を行うには、[ログに表示 (Analytics)] を選びます。

[ログに表示 (Analytics)] ボタンを示すスクリーンショット。

過去 12 時間の要求の平均応答時間を要約した折れ線グラフが表示された [ログ] 画面を示すスクリーンショット。

アラート

アクティブなアラートと、アラートがトリガーされる原因になっている元のルールを表示するには、[アラート] を選択します。

[アラート] ボタンを示すスクリーンショット。

アラートの一覧を示すスクリーンショット。

クラウド ロール名を設定またはオーバーライドする

アプリケーション マップでは、クラウド ロール名プロパティを使用して、マップ上のコンポーネントが識別されます。

このガイダンスに従ってクラウド ロール名を手動で設定またはオーバーライドし、アプリケーション マップ上に表示される内容を変更します。

Note

Application Insights SDK または Agent では、Azure App Service 環境のコンポーネントで生成されたテレメトリにクラウド ロール名プロパティが自動的に追加されます。

カスタム TelemetryInitializer を記述する

using Microsoft.ApplicationInsights.Channel;
using Microsoft.ApplicationInsights.Extensibility;

namespace CustomInitializer.Telemetry
{
    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if (string.IsNullOrEmpty(telemetry.Context.Cloud.RoleName))
            {
                //set custom role name here
                telemetry.Context.Cloud.RoleName = "Custom RoleName";
                telemetry.Context.Cloud.RoleInstance = "Custom RoleInstance";
            }
        }
    }
}

ASP.NET アプリ: アクティブな TelemetryConfiguration に初期化子を読み込む

ApplicationInsights.configの場合:

    <ApplicationInsights>
      <TelemetryInitializers>
        <!-- Fully qualified type name, assembly name: -->
        <Add Type="CustomInitializer.Telemetry.MyTelemetryInitializer, CustomInitializer"/>
        ...
      </TelemetryInitializers>
    </ApplicationInsights>

ASP.NET Web アプリのもう 1 つの方法は、Global.aspx.cs などのコード内で初期化子をインスタンス化することです。

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;

    protected void Application_Start()
    {
        // ...
        TelemetryConfiguration.Active.TelemetryInitializers.Add(new MyTelemetryInitializer());
    }

注意

ApplicationInsights.config または TelemetryConfiguration.Active を使用して初期化子を追加することは、ASP.NET Core アプリケーションでは無効です。

ASP.NET Core アプリ: TelemetryConfiguration に初期化子を読み込む

ASP.NET Core アプリケーションの場合、新しい TelemetryInitializer インスタンスを追加するには、次に示すように、依存関係挿入コンテナーに追加します。 この手順は、Startup.cs クラスの ConfigureServices メソッドで行います。

 using Microsoft.ApplicationInsights.Extensibility;
 using CustomInitializer.Telemetry;
 public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<ITelemetryInitializer, MyTelemetryInitializer>();
}

アプリケーション マップのコンテキスト内でのクラウド ロール名を理解する

"クラウド ロール名 "の概念を理解するには、複数のクラウド ロール名が存在するアプリケーション マップを見てください。

アプリケーション マップの例を示すスクリーンショット。

表示されているアプリケーション マップでは、緑色の囲みの中の名前が、それぞれこの特定の分散型アプリケーションのさまざまな側面に対するクラウド ロール名の値になります。 このアプリでは、そのロールは AuthenticationacmefrontendInventory ManagementPayment Processing Worker Role で構成されています。

このアプリでは、クラウド ロール名のそれぞれが、一意の Application Insights リソースと各自のインストルメンテーション キーも表しています。 このアプリケーションの所有者は、これら 4 つの異なる Application Insights リソースにアクセスできるため、アプリケーション マップによって基になるリレーションシップを 1 つのマップにまとめることができます。

公式な定義:

   [Description("Name of the role the application is a part of. Maps directly to the role name in azure.")]
    [MaxStringLength("256")]
    705: string      CloudRole = "ai.cloud.role";

    [Description("Name of the instance where the application is running. Computer name for on-premises, instance name for Azure.")]
    [MaxStringLength("256")]
    715: string      CloudRoleInstance = "ai.cloud.roleInstance";

または、"クラウド ロール インスタンス" は、クラウド ロール名によって問題が Web フロントエンド内のどこかにあることを示すシナリオに役立ちます。 ただし、Web フロントエンド全体で複数の負荷分散サーバーを実行している可能性があります。 Kusto クエリを使用してレイヤーをより深くドリルインできることと、問題の影響範囲がすべての Web フロントエンド サーバーまたはインスタンスであるか、1 つだけであるかを把握することが重要である可能性があります。 コンテナー化された環境でアプリが実行されている場合に、クラウド ロール インスタンスの値をオーバーライドしたいときには、インテリジェント ビューのシナリオを使用できます。 この場合、個々のサーバーを把握するだけでは特定の問題を見つけられない可能性があります。

クラウド ロール名プロパティをテレメトリ初期化子でオーバーライドする方法の詳細については、ITelemetryInitializer プロパティの追加に関するページを参照してください。


アプリケーション マップ フィルター

アプリケーション マップ フィルターを使用すると、ユーザーは 1 つ以上のフィルターを適用して、表示されるノードとエッジの数を減らすことができます。 これらのフィルターを使用すると、マップの範囲を縮小し、より小さい、より対象を絞ったマップを表示できます。

アプリケーション マップ フィルターを作成する

フィルターを作成するには、アプリケーション マップのツール バーの [フィルターの追加] ボタンを選択します。

[フィルターの追加] ボタンのスクリーンショット。

これにより、[1. フィルターの種類を選択します]、[2. フィルターのパラメーターを選択します]、[3. 確認します] の 3 つのセクションを含むダイアログがポップアップ表示されます。

[ノード フィルター] ラジオ ボタンが選択されているスクリーンショット。

[コネクタ (エッジ) フィルター] ラジオ ボタンが選択されているスクリーンショット。

最初のセクションには、次の 2 つのオプションがあります。

  1. ノード フィルター
  2. コネクタ (エッジ) フィルター

他のセクションの内容は、選択したオプションに基づいて変更されます。

ノード フィルター

ノード フィルターを使用すると、ユーザーは選択したノードのみをマップ上に残し、残りのノードを非表示にできます。 ノード フィルターによって、検索値と一致するプロパティ値 (ノードの名前など) が各ノードに含まれているかどうかが、指定した演算子を介してチェックされます。 ノード フィルターによってノードが削除されると、そのすべてのコネクタ (エッジ) も削除されます。

ノードには、次の 3 つのパラメーターを使用できます。

  • [含まれるノード] を使用すると、ユーザーは、一致するプロパティを持つノードのみを選択することや、ソース ノード、ターゲット ノード、またはその両方を結果のマップに含めることができます。

    • [ノードとソース、ターゲット] -- これは、検索パラメーターに一致するノードを結果のマップに含めることを意味し、一致するノードのソースまたはターゲットであるノードも含めます (検索に一致するプロパティ値がノードにない場合でも)。 ソース ノードとターゲット ノードは、まとめて "接続済み" ノードと呼ばれます。

    • [ノードとソース] -- 上記と同じですが、ターゲット ノードは結果に自動的に含まれません。

    • [ノードとターゲット] -- 上記と同じですが、ソース ノードは自動的に含まれません。

    • [ノードのみ] -- 結果のマップのすべてのノードに、一致するプロパティ値が含まれています。

  • [演算子] は、各ノードのプロパティ値に対して実行するチェックの種類です。

    • contains

    • !contains (次の値を含まない)

    • == (等しい)

    • != (等しくない)

  • [検索値] は、ノード プロパティ値に含まれるテキスト、ノード プロパティ値に含まれないテキスト、ノード プロパティ値と等しいテキスト、ノード プロパティ値と等しくないテキストです。 マップ上にあるノードで見つかった値の一部は、ドロップダウンに表示されます。 ドロップダウンで [Create option ...] (オプションの作成 ...) をクリックすることで、任意の値を入力できます。

たとえば、次のスクリーンショットでは、"-west" というテキストを含むノードを選択するようにフィルターが構成されています。ソース ノードとターゲット ノードも結果のマップに含まれます。 同じスクリーンショットで、ユーザーはマップにあるいずれかの値を選択することや、マップにある値への完全一致ではないオプションを作成することができます。

west というテキストを含むノードを選択するように構成されたフィルターのスクリーンショット。

コネクタ (エッジ) フィルター

コネクタ フィルターによって、値と一致するコネクタのプロパティが調べられます。 フィルターに一致しないコネクタは、マップから削除されます。 コネクタが残っていないノードに対しても同じ処理が行なわれます。

コネクタ フィルターには、次の 3 つのパラメーターが必要です。

  • [コネクタのフィルター方法] を使用すると、ユーザーはコネクタのどのプロパティを使用するかを選択できます。

    • [エラーのコネクタ (赤で強調表示)] では、色 (赤かどうか) に基づいてコネクタが選択されます。 この種のフィルターには値は入力できず、"エラーのあるコネクタ" を意味する "==" 演算子と、"エラーのないコネクタ" を意味する "!=" 演算子のみ使用できます。

    • [エラー率] では、コネクタの平均エラー率が使用されます。平均エラー率は、失敗した呼び出しの数を呼び出しの総数で除算したもので、パーセンテージで表されます。 たとえば、"1" という値は、呼び出しの 1% が失敗したことを示します。

    • [平均呼び出し時間 (ms)] では、コネクタによって表されるすべての呼び出しの平均時間 (ミリ秒単位) が使用されます。 たとえば、"1000" という値は、呼び出しの平均時間が 1 秒であることを示します。

    • [呼び出し数] では、コネクタによって表される呼び出しの合計数が使用されます。

  • [演算子] は、コネクタ プロパティとその後に入力される値の間で適用される比較処理です。 オプションの変更: [Error connector] (エラーのコネクタ) には、[equals] (等しい)/[not equals] (等しくない) オプションがあります。それ以外のすべてに [greater than] (より大きい)/[less than] (より小さい) があります。

  • [値] はフィルターの比較値です。 [Error connector] (エラーのコネクタ) フィルターには、[エラー] という 1 つのオプションのみあります。その他の種類のフィルターには、数値が必要であり、マップに関連するエントリが事前に設定されたドロップダウンが用意されています。

    • これらのエントリの一部には、パーセンタイル レベルである "(Pxx)" という指定があります。 たとえば、[平均呼び出し時間] フィルターの値が "200 (P90)" の場合、(コネクタが表す呼び出し数に関係なく) すべてのコネクタの 90% の呼び出し時間が 200 ミリ秒未満であることを示します。

    • ドロップダウンに特定の数値が表示されない場合、[作成] オプションをクリックすることで、その数値を入力して作成できます。「P」と入力すると、ドロップダウンにすべてのパーセンタイル値が表示されます。

[レビュー] セクション

[レビュー] セクションには、フィルターの処理内容に関するテキストと視覚的な説明が含まれます。これらは、フィルターがどのように処理を行うかを学習する場合に役立ちます。

ノードにフォーカスがある [レビュー] セクションのスクリーンショット。

42 ミリ秒を超えた平均呼び出し時間を示す [レビュー] セクションのスクリーンショット。

アプリケーション マップでフィルターを使用する

フィルターの対話機能

[フィルターの追加] ポップアップでフィルターを構成した後、[適用] を選択してフィルターを作成します。 複数のフィルターを適用でき、左から右に順番に適用されます。 各フィルターで、追加のノードとコネクタを削除できますが、それらをマップに追加し直すことはできません。

フィルターは、角が丸いボタンとしてアプリケーション マップの上方に表示されます。

アプリケーション マップの上方に角が丸いフィルター ボタンが表示されているスクリーンショット。

フィルターの 円形の X ボタンのスクリーンショット をクリックすると、そのフィルターが削除されます。 ボタンの他の場所をクリックすると、ユーザーはフィルターの値を編集できます。 ユーザーがフィルターの値を変更すると、新しい値が適用され、マップが変更のプレビューとなります。 [キャンセル] をクリックすると、フィルターが復元され、編集前の状態になります。

[キャンセル] ボタンがある [コネクタ フィルターの構成] セクションが表示されているスクリーンショット。

フィルターを再利用する

フィルターは、次の 2 つの方法で再利用できます。

  • マップの上方にあるツール バーの [リンクのコピー] ボタンにより、コピーされる URL でフィルター情報がエンコードされます。 このリンクは、ブラウザーのブックマークに保存することや、他のユーザーと共有することができます。 [リンクのコピー] では、時間の値が保持されますが、絶対時間は保持されないため、後で表示されるマップは、リンクの作成時に表示されていたマップとは異なる場合があります。

  • [アプリケーション マップ] ウィンドウのタイトル バーの横に、ダッシュボードへのピン留めツール [dashboard pin] (ダッシュボードにピン留め) ボタンが表示されているスクリーンショット があります。 このボタンにより、フィルターがマップに適用された状態でそのマップがダッシュボードにピン留めされます。 この操作は、頻繁に使用するフィルターに対して便利です。 たとえば、ユーザーは、[Error connector] (エラーのコネクタ) フィルターがマップに適用された状態でそのマップをピン留めできます。この場合、ダッシュボード ビューには、HTTP 呼び出しでエラーがあったノードのみが表示されます。

フィルターの使用シナリオ

フィルターの組み合わせは多数あります。 ほとんどのマップに使用でき、ダッシュボードにピン留めすると便利なものをいくつか提案します。

  • [Intelligent view] (インテリジェント ビュー) と共に [Error connector] (エラーのコネクタ) フィルターを使用して、重要と見なされるエラーのみを表示する。
    [直近 24 時間] フィルターと [Highlighted Errors] (強調表示 == エラー) フィルターが表示されているスクリーンショット。[Intelligent view] (インテリジェント ビュー) トグルが表示されているスクリーンショット。

  • 影響が大きい問題に素早く注目するために、エラーがなくトラフィックが少ないコネクタを非表示にする。[直近 24 時間] フィルター、[calls greater than 876] (呼び出し数 >= 876) フィルター、[highlihgted errors] (強調表示 == エラー) フィルターが表示されているスクリーンショット。

  • パフォーマンスの問題がないか確認するために、平均時間が長く、トラフィックが多いコネクタを表示する。[直近 24 時間] フィルター、[calls greater than 3057] (呼び出し数 >= 3057) フィルター、[average time greater than 467] (平均時間 >= 467) フィルターが表示されているスクリーンショット。

  • 分散アプリケーションの特定の部分を表示する (適切な roleName 名前付け規則が必要)。[直近 24 時間] フィルターと [Connected Contains West] (接続済み、次を含む、West) フィルターが表示されているスクリーンショット。

  • 情報量が多過ぎる依存関係の種類を非表示にする。[直近 24 時間] フィルターと [Nodes Contains Storage Accounts] (ノード、次を含む、ストレージ アカウント) フィルターが表示されているスクリーンショット。

  • 特定の値よりもエラー率が高いコネクタのみ表示する。[直近 24 時間] フィルターと [Errors greater than 0.01] (エラー >= 0.01) フィルターが表示されているスクリーンショット。


アプリケーション マップ インテリジェント ビュー (パブリック プレビュー)

次のセクションでは、インテリジェント ビューについて説明します。

インテリジェント ビューの概要

アプリケーション マップ インテリジェント ビューは、サービス正常性調査に役立つよう設計されています。 機械学習を適用して、ノイズを除外することで、問題の潜在的な根本原因をすばやく特定します。 機械学習モデルは、アプリケーション マップの履歴動作から学習し、インシデントの潜在的な原因を示す主要なパターンと異常を特定します。

大規模な分散型アプリケーションでは、常に "良性" のエラーからある程度のノイズが発生します。これにより、多くの赤いエッジが表示され、アプリケーション マップにノイズが多くなる可能性があります。 インテリジェント ビューには、最も可能性の高いサービス エラーの原因のみが表示され、正常なサービスではノード間の赤いエッジ (サービス間通信) が削除されます。 インテリジェント ビューでは、調査する必要があるエッジが赤で強調表示されます。 また、強調表示されたエッジに対するアクションにつながる分析情報も提供されます。

インテリジェント ビューの利点

  • 調査する必要があるエラーのみを強調表示することで、解決までの時間を短縮する
  • 特定の赤いエッジが強調表示された理由に関する実用的な分析情報を提供する
  • 大規模な分散型アプリケーションでアプリケーション マップを (赤でマークされたエッジのみに焦点を合わせて) シームレスに使用できるようにする

[アプリケーション マップ] でインテリジェント ビューを有効にする

[Intelligent view] (インテリジェント ビュー) トグルをオンにします。 必要に応じて、[低][中]、または [高] を選び、検出の感度を変更します。 詳細については、感度に関するトラブルシューティングの質問を参照してください。

[アプリケーション マップ] ユーザー インターフェイスのスクリーンショット。インテリジェント ビューの切り替えとフィードバックの提供を行うためのオプションが表示されています。

[Intelligent view] (インテリジェント ビュー) を有効にした後、強調表示されているエッジのいずれかを選び、"アクションにつながる分析情報" を表示します。右側のペインに分析情報が表示され、エッジが強調表示された理由が示されます。

アクションにつながる分析情報に関する、[アプリケーション マップ] ユーザー インターフェイスのセクションを示すスクリーンショット。

トラブルシューティングを開始するには、[エラーの調査] を選びます。 開いた [エラー] ペインで、検出された問題が根本原因であるかどうかを調査します。 赤いエッジがない場合、機械学習モデルで、アプリケーションの依存関係に潜在的なインシデントが検出されませんでした。

フィードバックを提供するには、マップ上の [フィードバック] ボタンを選びます。

インテリジェント ビューで赤いエッジを強調表示する場所を決定する方法

インテリジェント ビューは、特許を取得した AIOps 機械学習モデルを使用して、アプリケーション マップで特に重要な点を強調します。

いくつかの考慮事項の例を次に示します。

  • エラー率
  • 要求数
  • 期間
  • データの異常
  • 依存関係の種類

なお、標準ビューでは未加工のエラー率のみが使用されます。

インテリジェント ビューの感度のしくみ

インテリジェント ビューの感度は、サービスの問題が検出される確率を調整します。

強調表示されたエッジで目的の信頼度レベルが実現されるように感度を調整します。

感度の設定 結果
強調表示されるエッジが少なくなります。
中 (既定値) バランスの取れた数のエッジが強調表示されます。
強調表示されるエッジが多くなります。

インテリジェント ビューの制限事項

インテリジェント ビューには、いくつかの制限があります。

  • 大規模な分散型アプリケーションでは、インテリジェント ビューの読み込みに 1 分かかる場合があります。
  • 最大 7 日間の概算時間がサポートされています。

フィードバックを提供する場合は、「ポータルのフィードバック」を参照してください。


トラブルシューティング

アプリケーション マップを想定どおりに動作させることができない場合は、次の手順をお試しください。

全般

  1. 正式にサポートされている SDK を使用していることを確認します。 未サポートまたはコミュニティ SDK は、相関関係をサポートしていない場合があります。

    サポートされている SDK の一覧については、Application Insights: 言語、プラットフォーム、および統合に関する記事を参照してください。

  2. すべてのコンポーネントを最新の SDK バージョンにアップグレードします。

  3. C# で Azure Functions を使用している場合は、Azure Functions V2 にアップグレードします。

  4. クラウド ロール名が正しく構成されていることを確認します。

  5. 依存関係が欠落している場合は、自動収集された依存関係の一覧にあることを確認します。 ない場合でも、TrackDependency 呼び出しを使えば手動で追跡することができます。

マップ上のノードが多すぎる

アプリケーション マップでは、要求テレメトリ内に存在する一意のクラウド ロール名ごとにアプリケーション ノードが作成されます。 また、タイプ、ターゲット、およびクラウド ロール名の一意の組み合わせごとに依存関係ノードも作成されます。

テレメトリ内のノード数が 10,000 個を超える場合は、アプリケーション マップですべてのノードとリンクをフェッチできないため、マップが不完全になります。 このシナリオが発生すると、マップを表示したときに警告メッセージが表示されます。

アプリケーション マップでは、一度にレンダリングされる個別のグループ化されていないノードは最大 1,000 個のみサポートされます。 アプリケーション マップでは、視覚化の複雑さを低減するために、種類と呼び出し元が同じ依存関係がグループ化されます。

テレメトリの一意のクラウド ロール名が多すぎる場合や、依存関係の種類が多すぎる場合は、そのグループ化が不十分となり、マップでレンダリングされなくなります。

この問題を解決するには、クラウド ロール名、依存関係の種類、および依存関係のターゲットのフィールドが正しく設定されるように、インストルメンテーションを変更する必要があります。

  • 依存関係のターゲットは、依存関係の論理名を表す必要があります。 多くの場合、これは依存関係のサーバーまたはリソース名と等しくなります。 たとえば、HTTP の依存関係がある場合、ホスト名に設定にされます。 要求ごとに変化する一意の ID またはパラメーターを含めてはなりません。

  • 依存関係の種類は、依存関係の論理型を表す必要があります。 たとえば、一般的な依存関係の種類には、HTTP、SQL、Azure BLOB などがあります。 一意の ID は含めないでください。

  • クラウド ロール名の目的については、「クラウド ロール名を設定またはオーバーライドする」セクションに説明があります。

インテリジェント ビュー

インテリジェント ビューに関する一般的なトラブルシューティングの質問。

感度が低くても、このエッジが強調表示されないのはなぜですか?

依存関係が失敗しているようであるが、モデルではそれが潜在的なインシデントであると示していない。

  • この依存関係がしばらく失敗している場合、モデルはそれが通常の状態であると考え、エッジを強調表示しない可能性があります。 これは、リアルタイムでの問題解決に重点を置いています。
  • この依存関係がアプリの全体的なパフォーマンスに最小限の影響しか与えない場合、モデルでそれを無視させることもできます。
  • 上記のいずれにも該当しない場合は、[フィードバック] オプションを使用し、現象を説明してください。 将来のモデル バージョンの改善に役立ちます。

エッジが強調表示されているのはなぜですか?

エッジが強調表示されている場合、モデルからの説明により、モデルがこの依存関係に高い確率スコアを与える最も重要な特徴が示されるはずです。 推奨事項は、エラーだけでなく、主要なフローでの予期しない待ち時間などの他のインジケーターにも基づいています。

インテリジェント ビューが読み込まれないのはなぜですか?

[Intelligent view] (インテリジェント ビュー) が読み込まれない場合:

  1. 構成した期間を 6 日以下に設定します。

  2. オプトインするには、[プレビューを試す] ボタンを選ぶ必要があります。

    [アプリケーション マップ] ユーザー インターフェイスの [プレビューを試す] ボタン示すスクリーンショット。

インテリジェント ビューの読み込みに時間がかかるのはなぜですか?

[マップ コンポーネントの更新] を選ばないようにします。

1 つの Application Insights リソースに対してのみ[Intelligent view] (インテリジェント ビュー) を有効にします。

[アプリケーション マップ] ユーザー インターフェイスの [マップ コンポーネントの更新] ボタンを示すスクリーンショット。

ポータルのフィードバック

ご意見やご感想は、フィードバック オプションからお寄せください。

[フィードバック] オプションを示すスクリーンショット。

次のステップ