データが存在しない場合のトラブルシューティング - Application Insights for .NET、Application Insights for .NET Core

テレメトリの一部が見つからない

Application Insights で、アプリによって生成されているイベントのごく一部しか表示されません。

  • 同じ部分が常に表示される場合は、アダプティブ サンプリングが原因である可能性があります。 これを確認するには、([概要] ブレードから) [検索] を開き、要求やその他のイベントのインスタンスを確認します。 すべてのプロパティの詳細を表示するには、 [プロパティ] セクションの下部にある省略記号 [...] を選択します。 要求数が 1 より大きい場合は、サンプリングが実行中です。
  • 料金プランのデータ速度の上限に達してる可能性があります。 これらの制限は分単位で適用されます。

"データがランダムに失われます。 "

アプリが停止する直前、コンソール アプリや Web アプリでデータが失われます。

  • SDK チャネルでは、バッファにテレメトリが保存され、一括送信されます。 アプリケーションがシャットダウンするとき、場合によっては、Flush() を明示的に呼び出す必要があります。 Flush() の動作は、使用されている実際のチャネルに依存します。

Application Insights SDK によって収集された要求カウントが、アプリケーションの IIS ログ カウントと一致しない

インターネット インフォメーション サービス (IIS) は、IIS に到達したすべての要求の数をログに記録します。これは本質的に、アプリケーションに到達した要求の総数とは異なる可能性があります。 このため、SDK によって収集された要求カウントが IIS ログの合計数と一致するとは限りません。

サーバーからデータを取得できない

既存のアプリを監視するために Web サーバーに Azure Monitor Application Insights Agent をインストールしたのですが、結果がまったく表示されません。

重要

インストルメンテーション キーよりも、接続文字列を使用することをお勧めします。 新しい Azure リージョンでは、インストルメンテーション キーの代わりに接続文字列を使用する 必要 があります。 接続文字列により、利用統計情報と関連付けるリソースが識別されます。 また、リソースでテレメトリの宛先として使用するエンドポイントを変更することもできます。 接続文字列をコピーし、アプリケーションのコードまたは環境変数に追加する必要があります。

FileNotFoundException:ファイルまたはアセンブリ Microsoft.AspNet TelemetryCorrelation を読み込めませんでした

このエラーの詳細については、GitHub の問題 1610 (https://github.com/microsoft/ApplicationInsights-dotnet/issues/1610) ) を参照してください。

(2.4) より前の SDK からアップグレードする場合は、web.configApplicationInsights.config に次の変更が適用されていることを確認する必要があります。

  1. 1 つではなく 2 つの http モジュール web.config には 2 つの http モジュールが必要です。 いくつかのシナリオでは、順序が重要です。

    <system.webServer>
      <modules>
          <add name="TelemetryCorrelationHttpModule" type="Microsoft.AspNet.TelemetryCorrelation.TelemetryCorrelationHttpModule, Microsoft.AspNet.TelemetryCorrelation" preCondition="integratedMode,managedHandler" />
          <add name="ApplicationInsightsHttpModule" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
      </modules>
    </system.webServer>
    
  2. RequestTrackingTelemetryModule に加えて ApplicationInsights.config には、次のテレメトリ モジュールが必要です。

    <TelemetryModules>
      <Add Type="Microsoft.ApplicationInsights.Web.AspNetDiagnosticTelemetryModule, Microsoft.AI.Web"/>
    </TelemetryModules>
    

正常にアップグレードできないと、予期しない例外が発生したり、テレメトリが収集されなかったりする可能性があります。

Visual Studio に [Application Insights の追加] オプションが表示されない

ソリューション エクスプローラーで既存のプロジェクトを右クリックしたときに、Application Insights のオプションが表示されません。

  • このツールでは、一部の種類の .NET プロジェクトがサポートされません。 Web プロジェクトと WCF プロジェクトはサポートされます。 その他の種類のプロジェクト (デスクトップ アプリケーション、サービス アプリケーションなど) では、 Application Insights SDK を手動でプロジェクトに追加できます。
  • Visual Studio 2013 Update 3 以降を使用しているかご確認ください。 これは、Application Insights SDK を提供する Developer Analytics Tools と共に事前インストールされています。
  • [ツール][拡張機能と更新プログラム] の順に選択し、Developer Analytics Tools がインストールされ、有効になっていることを確認します。 有効な場合は、 [更新プログラム] をクリックして更新プログラムが存在するかどうかを確認します。
  • [新しいプロジェクト] ダイアログを開いて [ASP.NET Web アプリケーション] を選択します。 そこに Application Insights オプションが表示された場合、Application Insights Tools はインストールされています。 それ以外の場合は、Developer Analytics Tools をアンインストールしてから再インストールしてみてください。

Application Insights の追加に失敗する

Application Insights を既存のプロジェクトに追加しようとしたときに、エラー メッセージが表示されます。

考えられる原因:

解決策:

  • 適切な Azure アカウントのサインイン資格情報を指定していることを確認してください。
  • ブラウザーで、 Azure ポータルに対するアクセス権があることを確認してください。 設定を開き、制限がないかどうか確認してください。
  • Application Insights をご自身の既存のプロジェクトに追加する:ソリューション エクスプローラーでご自身のプロジェクトを右クリックし、[Application Insights の追加] を選択します。

エラー「インストルメンテーション キーは空にできません」が発生しました

Application Insights をインストールしているとき、またはログ アダプターをインストールしているときに、何かの問題が発生した可能性があります。

ソリューション エクスプローラーでプロジェクトを右クリックし、 [Application Insights]、[Application Insights の構成] の順に選択します。 Azure へのサインインを促すダイアログが表示されます。または、Application Insights のリソースを作成するか、既存のリソースを再利用します。

ビルド サーバーに NuGet パッケージが見つからない

開発コンピューターでデバッグするときはすべて問題なくビルドされるのに、ビルド サーバーでは NuGet エラーが発生します。

NuGet パッケージの復元に関するページと自動パッケージの復元に関するページをご覧ください。

Visual Studio から Application Insights を開くためのメニュー コマンドがない

ソリューション エクスプローラーでプロジェクトを右クリックしても、Application Insights のコマンドが見当たりません。[Application Insights を開く] コマンドも表示されません。

考えられる原因:

  • Application Insights リソースを手動で作成したか、Application Insights Tools ではサポートされない種類のプロジェクトである。
  • Visual Studio で Developer Analytics Tools が無効にされている。
  • 使用している Visual Studio が 2013 Update 3 よりも古い。

解決策:

  • Visual Studio のバージョンが 2013 Update 3 以降であることを確認してください。
  • [ツール][拡張機能と更新プログラム] の順に選択し、Developer Analytics Tools がインストールされ、有効になっていることを確認します。 有効な場合は、 [更新プログラム] をクリックして更新プログラムが存在するかどうかを確認します。
  • ソリューション エクスプローラーでプロジェクトを右クリックします。 [Application Insights] > [Application Insights の構成] コマンドが表示される場合は、そのコマンドを使用して Application Insights サービスのリソースにプロジェクトを接続します。

それ以外の場合、ご使用のプロジェクトは Developer Analytics Tools で直接サポートされているプロジェクト タイプではありません。 テレメトリを表示するには、 Azure ポータルにサインインし、左側のナビゲーション バーで [Application Insights] を選択して目的のアプリケーションを選択してください。

Visual Studio から Application Insights を開くとアクセスが拒否される

[Application Insights を開く] メニュー コマンドで Azure ポータルに誘導されるものの、アクセスが拒否されたことを示すエラーが表示されます。

Application Insights をアプリに追加したときに作成されたリソースへのアクセス権が、既定のブラウザーで前回使用された Microsoft サインインにはありません。 次の 2 つの理由が考えられます。

  • Microsoft アカウントが複数存在する (仕事用と個人用など)。 前回既定のブラウザーで使用されたサインインが、 Application Insights をプロジェクトに追加するためのアクセス権を持ったアカウントと異なります。
    • 解決策:ブラウザー ウィンドウの右上に表示される名前をクリックしてサインアウトします。そのうえで、アクセス権のあるアカウントでサインインします。 左側のナビゲーション バーで [Application Insights] をクリックし、対象のアプリケーションを選択します。
  • 自分以外のだれかが Application Insights をプロジェクトに追加し、作成先となった リソース グループへのアクセス権 をあなたに与えるのを忘れている。
    • 解決策:その人物が組織アカウントを使用していた場合、そのチームに追加してもらいます。それ以外の場合は、リソース グループへのアクセス権を個別に付与してもらいます。

Visual Studio から Application Insights を開こうとすると "資産が見つからない" という内容のメッセージが表示される

[Application Insights を開く] メニュー コマンドで Azure ポータルに誘導されるものの、資産が見つからなかったことを示すエラーが表示されます。

考えられる原因:

  • アプリケーションの Application Insights リソースが削除されている。
  • プロジェクト ファイルを更新せずに ApplicationInsights.config を直接編集することによってインストルメンテーション キーが設定または変更された。

テレメトリがどこに送信されるかは、ApplicationInsights.config 内のインストルメンテーション キーによって制御されます。 Visual Studio のコマンドを使用したときにどのリソースが開くかは、プロジェクト ファイル内のコード行によって制御されます。

解決策:

  • ソリューション エクスプローラーでプロジェクトを右クリックし、[Application Insights]、[Application Insights の構成] の順に選択します。 テレメトリを既存のリソースに送信するか、または新しく作成するかをダイアログで選択できます。 または:
  • リソースを直接開きます。 Azure ポータルにサインインして左側のナビゲーション バーにある [Application Insights] をクリックし、目的のアプリを選択します。

テレメトリはどこで確認できますか

Microsoft Azure Portal にサインインし、Azure ホーム ダッシュボードを見ています。自分の Application Insights データはどこで確認できるのでしょうか。

  • 左側のナビゲーション バーで [Application Insights] をクリックし、目的のアプリの名前をクリックします。 プロジェクトがまったく表示されない場合は、 Web プロジェクトに Application Insights を追加または構成する必要があります。
    いくつかのサマリー グラフが表示されます。 それらをクリックしていくと、詳しい情報が表示されます。
  • Visual Studio でアプリをデバッグしているときに、[Application Insights] ボタンをクリックします。

サーバー データが表示されない (またはデータが一切表示されない)

アプリを実行し、Microsoft Azure の Application Insights サービスを開きましたが、どのグラフでも、データの収集方法についての説明か、必要な構成が行われていないという内容のメッセージしか表示されません。 または、ページ ビューとユーザー データだけが表示され、サーバー データが表示されません。

  • Visual Studio で F5 キーを押し、アプリケーションをデバッグ モードで実行します。 ある程度テレメトリを生成するために、アプリケーションを使用します。 記録されたイベントが Visual Studio の出力ウィンドウに表示されていることを確認します。
    Visual Studio のデバッグ モードでのアプリケーションの実行を示すスクリーンショット。
  • Application Insights ポータルで 診断検索を開きます。 通常、まずここにデータが表示されます。
  • [更新] ボタンをクリックします。 ブレードは周期的に自動で更新されますが、手動でも更新できます。 時間範囲が広いと、更新間隔は長くなります。
  • インストルメンテーション キーが一致していることを確認します。 Application Insights ポータルのアプリのメイン ブレードで、 [要点] ボックスの一覧に表示される [インストルメンテーション キー] を確認します。 次に、Visual Studio からプロジェクトの ApplicationInsights.config を開き、 <instrumentationkey>を探します。 2 つのキーが等しいことを確認してください。 等しくない場合は、次の作業を行います。
    • ポータルで [Application Insights] をクリックし、適切なキーのアプリ リソースを探します。または、
    • Visual Studio のソリューション エクスプローラーでプロジェクトを右クリックし、[Application Insights]、[構成] の順に選択します。 適切なリソースにテレメトリを送信するようにアプリをリセットします。
    • 一致するキーが見つからない場合は、ポータルにサインインするときと同じ資格情報を Visual Studio で使用していることを確認してください。
  • Microsoft Azure ホーム ダッシュボードで、サービス正常性マップを確認します。 アラート表示がある場合は、"OK" が表示されるまで待ってから、Application Insights アプリケーション ブレードをいったん閉じて開き直します。
  • 状態ブログも参照してください。
  • サーバー側 SDK で作成したコードによって、TelemetryClient インスタンス内または TelemetryContext 内のインストルメンテーション キーが変更されていないか確認します。 自分が記述した フィルターやサンプリング構成 によって、必要なデータまで排除されていないかも確認してください。
  • ApplicationInsights.config を編集した場合は、 TelemetryInitializers と TelemetryProcessorsの構成を慎重に確認します。 不適切な名前が付けられた型またはパラメーターがあると、SDK によってデータが送信されない場合があります。

ページ ビュー、ブラウザー、利用状況にデータが表示されない

サーバー応答時間グラフとサーバー要求グラフにはデータが表示されますが、[ページ ビューの読み込み時間]、[ブラウザー] ブレードまたは [利用状況] ブレードにはデータが表示されません。

データは、Web ページのスクリプトによって取得されます。

  • Application Insights を既存の Web プロジェクトに追加した場合は、 スクリプトを手動で追加する必要があります。
  • Internet Explorer がサイトを互換モードで表示していないかご確認ください。
  • ブラウザーのデバッグ機能 (一部のブラウザーでは F12 キーを押した後 [ネットワーク] を選択) を使用して、データが dc.services.visualstudio.comに送信されていることを確認します。

依存関係または例外のデータが得られない

依存関係のテレメトリに関する記事と例外のテレメトリに関する記事をご覧ください。

パフォーマンス データが表示されない

パフォーマンス データ (CPU、IO 量など) は、Java Web サービスWindows デスクトップ アプリIIS Web アプリおよびサービス (Application Insights Agent がインストールされている場合)、および Azure Cloud Services で使用できます。 パフォーマンス データは、[設定] の [サーバー] の下にあります。

サーバーにアプリを発行して以来、(サーバー) データが得られない

  • すべての Microsoft. ApplicationInsights DLL が Microsoft.Diagnostics.Instrumentation.Extensions.Intercept.dll と一緒にサーバーにコピーされたことを確認します。
  • ファイアウォールで、一部の TCP ポートを開くことが必要な場合があります。
  • プロキシを使用して社内ネットワークの外に送信しなければならない場合は、Web.config に defaultProxy を設定します。
  • Windows Server 2008:更新プログラム KB2468871KB2533523KB2600217 がインストールされていることを確認します。

データが表示されていたのに停止しました。

  • データ ポイントの月間クォータに達していませんか? [設定]、[クォータと価格] の順に開いてご確認ください。上限に達している場合は、プランをアップグレードするか、追加容量分を購入することができます。 「 料金プラン」をご覧ください。

予期しているデータがすべて表示されません

アプリケーションが送信するデータ量が多く、Application Insights SDK for ASP.NET バージョン 2.0.0-beta3 以降を使用している場合は、 アダプティブ サンプリング 機能が動作して、テレメトリの一定の割合のみが送信される可能性があります。

その機能を無効にすることもできますがお勧めしません。 サンプリングは、関連するテレメトリが診断用途で正しく送信されるように設計されています。

クライアント IP アドレスは 0.0.0.0 です

2018 年 2 月 5 日、クライアント IP アドレスのログ記録を削除したことを発表しました。 これは geo ロケーションには影響しません。

注意

IP アドレスの最初の 3 オクテットが必要な場合は、テレメトリ初期化子を使用して、カスタム属性を追加できます。 これは、2018 年 2 月 5 日より前に収集されたデータには影響しません。

ユーザー テレメトリの地理データに誤りがある

市区町村、地域、国の各ディメンションは IP アドレスから取得され、必ずしも正確であるとは限りません。 これらの IP アドレスは、最初に場所で処理された後、0.0.0.0 に変更されて格納されます。

Azure Cloud Services で実行する際の例外「メソッドが見つかりません」

.NET 4.6 でビルドした場合 4.6 は Azure Cloud Services のロールでは自動的にサポートされていません。 アプリを実行する前に、各ロールに 4.6 をインストールしてください。

トラブルシューティング ログ

ご使用のフレームワークのトラブルシューティング ログをキャプチャするには、次の手順に従います。

.NET Framework

注意

バージョン 2.14 以降では、Microsoft.AspNet.ApplicationInsights.HostingStartup パッケージは不要になり、SDK のログは Microsoft.ApplicationInsights パッケージによって収集されるようになりました。 パッケージを追加する必要はありません。

  1. applicationinsights.config ファイルを変更して以下を含めます。

    <TelemetryModules>
      <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.FileDiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
        <Severity>Verbose</Severity>
        <LogFileName>mylog.txt</LogFileName>
        <LogFilePath>C:\\SDKLOGS</LogFilePath>
      </Add>
    </TelemetryModules>
    

    アプリケーションには、構成されている場所への書き込みアクセス許可が必要です。

  2. プロセスを再起動して、SDK によってこれらの新しい設定が取得されるようにします。

  3. 完了したら、これらの変更を元に戻します。

.NET Core

  1. ASP.NET Core パッケージ用の Application Insights SDK NuGet パッケージを NuGet からインストールします。 インストールするバージョンは、Microsoft.ApplicationInsights の現在インストールされているバージョンと一致する必要があります。

    Microsoft.ApplicationInsights.AspNetCore の最新バージョンは 2.14.0 であり、これにより Microsoft.ApplicationInsights バージョン 2.14.0 が参照されます。 そのため、インストールする Microsoft.ApplicationInsights.AspNetCore のバージョンは 2.14.0 である必要があります。

  2. Startup.cs クラスの ConfigureServices メソッドを変更します。

    services.AddSingleton<ITelemetryModule, FileDiagnosticsTelemetryModule>();
    services.ConfigureTelemetryModule<FileDiagnosticsTelemetryModule>( (module, options) => {
        module.LogFilePath = "C:\\SDKLOGS";
        module.LogFileName = "mylog.txt";
        module.Severity = "Verbose";
    } );
    

    アプリケーションには、構成されている場所への書き込みアクセス許可が必要です。

  3. プロセスを再起動して、SDK によってこれらの新しい設定が取得されるようにします。

  4. 完了したら、これらの変更を元に戻します。

PerfView でログを収集する

PerfView は、多くのソースから診断情報を収集して視覚化することによって、CPU、メモリ、およびその他の問題を特定するために役立つ、無料の診断およびパフォーマンス分析ツールです。

Application Insights SDK は、PerfView でキャプチャできる EventSource の自己トラブルシューティング ログを記録します。

ログを収集するには、PerfView をダウンロードし、次のコマンドを実行します。

PerfView.exe collect -MaxCollectSec:300 -NoGui /onlyProviders=*Microsoft-ApplicationInsights-Core,*Microsoft-ApplicationInsights-Data,*Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Microsoft-ApplicationInsights-Extensibility-HostingStartup,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Microsoft-ApplicationInsights-Extensibility-Web,*Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Microsoft-ApplicationInsights-WindowsServer-Core,*Microsoft-ApplicationInsights-LoggerProvider,*Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Microsoft-ApplicationInsights-AspNetCore,*Redfield-Microsoft-ApplicationInsights-Core,*Redfield-Microsoft-ApplicationInsights-Data,*Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,*Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,*Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,*Redfield-Microsoft-ApplicationInsights-Extensibility-Web,*Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,*Redfield-Microsoft-ApplicationInsights-LoggerProvider,*Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,*Redfield-Microsoft-ApplicationInsights-AspNetCore

以下のパラメーターは、必要に応じて変更できます。

  • MaxCollectSec。 PerfView が無期限に実行され、サーバーのパフォーマンスに影響が及ぶのを防ぐには、このパラメーターを設定します。
  • OnlyProviders。 SDK だけからログを収集するには、このパラメーターを設定します。 特定の調査に基づいて、この一覧をカスタマイズすることができます。
  • NoGui。 GUI なしでログを収集するには、このパラメーターを設定します。

詳細については、以下を参照してください。

dotnet-trace を使用してログを収集する

別の方法として、お客様はクロスプラットフォームの .NET Core ツール dotnet-trace を使用してログを収集することもできます。これが、トラブルシューティングにさらに役立つ可能性があります。 これは、Linux ベースの環境では特に便利です。

dotnet-trace をインストールしたら、bash で次のコマンドを実行します。

dotnet-trace collect --process-id <PID> --providers Microsoft-ApplicationInsights-Core,Microsoft-ApplicationInsights-Data,Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Microsoft-ApplicationInsights-Extensibility-HostingStartup,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Microsoft-ApplicationInsights-Extensibility-Web,Microsoft-ApplicationInsights-Extensibility-WindowsServer,Microsoft-ApplicationInsights-WindowsServer-Core,Microsoft-ApplicationInsights-LoggerProvider,Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Microsoft-ApplicationInsights-AspNetCore,Redfield-Microsoft-ApplicationInsights-Core,Redfield-Microsoft-ApplicationInsights-Data,Redfield-Microsoft-ApplicationInsights-WindowsServer-TelemetryChannel,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Dependency,Redfield-Microsoft-ApplicationInsights-Extensibility-AppMapCorrelation-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-DependencyCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-EventCounterCollector,Redfield-Microsoft-ApplicationInsights-Extensibility-PerformanceCollector-QuickPulse,Redfield-Microsoft-ApplicationInsights-Extensibility-Web,Redfield-Microsoft-ApplicationInsights-Extensibility-WindowsServer,Redfield-Microsoft-ApplicationInsights-LoggerProvider,Redfield-Microsoft-ApplicationInsights-Extensibility-EventSourceListener,Redfield-Microsoft-ApplicationInsights-AspNetCore

Application Insights を削除する方法

Visual Studio で Application Insights を削除する方法については、Application Insights の削除に関する記事で説明されている手順を参照してください。

問題が解決しない場合