2017-07-17 4 views
0

にストリーミングします。 私WEBAPIアプリケーションがローカルで実行されている、私は、アプリケーションの洞察に「検索」を経由してアプリのログを見ることができる、と私はまた、ライブメトリックストリームを見ることができます。取得できませんライブメトリックは、私は、アプリケーションの洞察に行くように設定SerilogロギングとWEBAPIアプリケーションを持って展開WEBAPIアプリケーション

しかし、アプリケーションがデプロイされても、Live Metrics Streamは表示されません(「利用できません:あなたのアプリはオフラインまたは古いSDKを使用しています」)。 - ライブメトリックスのデータ収集ではなく、アプリケーションのロギングが機能していますが、Live Metricsのデータ収集ではありません。live metrics stream portsのポート443に到達できることを確認しました(rt .services.visualstudio.comとrt.applicationinsights.microsoft.com)、そのサーバーからのtelnetと。

アプリケーションInsightsのモニタサーバ上にあることを示しますサイトは「有効」です。唯一の通知は、「アプリケーションの洞察力はすでにアプリケーションのプロジェクトコードを通じて、このアプリケーションで有効になっている。(...)」です。もともと私はメトリックを収集することができないことについて警告していたが、私は適切なグループにアプリケーションプールのIDを追加し、その警告は今行ってきました。

私が行った唯一の本当のカスタマイズは、applicationinsights.configファイルからAIキーを削除し、それをコードに設定して、各環境ごとに異なるAIリソースを持つことができるようにすることです。 Startup.Configuration方法で計測キーを設定し

私のコードは次のとおりです。繰り返しますが、これは局部的に取り組んでいる

if (TelemetryConfiguration.Active != null) 
    { 
     TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["ApplicationInsightsKey"]; 
    } 

ので、私はこの問題は、AIの設定ではないと思いますコードのキー。

ライブメトリックの収集や送信に問題がある理由をAIが認識できるようにする「自己ロギング」はありますか?

+0

は、すべて展開されているaiアセンブリの最新バージョンですか?あなたは 'sdkVersion'フィールドの出力を見て、検索に表示されているものを確認することができますか? –

答えて

0

- ApplicationInsights.configの場所を確認してください。多くの要因(展開モデルやアプリケーションの種類など)に応じて、ファイルは/ binフォルダまたはアプリケーションのルートに存在する必要があります。

+0

私はapplicationinsights.configを/ binに入れていたカスタムビルドプロセスを持っていました。ありがとう! applicationinsightsがこの種のことを助けるために、いくつかのデバッグ情報をポータルに送ってくれればいいでしょう。 – dbruning

0

次のことを試してみて、それが働いた場合はお知らせすることはできますか?

QuickPulseTelemetryModule quickPulseModule = new QuickPulseTelemetryModule(); 
QuickPulseTelemetryProcessor quickPulseTelemetryProcessor = TelemetryConfiguration.Active.TelemetryProcessors.OfType<QuickPulseTelemetryProcessor>().Single(); 
quickPulseModule.RegisterTelemetryProcessor(quickPulseTelemetryProcessor); 
quickPulseModule.Initialize(TelemetryConfiguration.Active); 
  • あなたは全体のモジュールへの参照を保持してください:あなたは計装キーを設定した後、手動でモジュールを作成し、コード内の
  • ApplicationInsights.config

  • から

    1. 削除QuickPul​​seTelemetryModuleアプリケーションの存続期間。

    上記QuickPul​​seTelemetryProcessorを示す失敗が構成で見つからない場合は、リモートサーバにデプロイする際ApplicationInsights.configが正しく配置されていることを確認してください(展開したときのものがローカルに作業しますがされていないという事実があるかもしれませんQuickPul​​seTelemetryProcessorがコンフィギュレーションファイル内にあってもコンフィギュレーション内に見つからないように見えることに加えて、ファイルが選択されなかったという事実のインジケータです。 ApplicationInsights.configの配置を、動作するローカルセットアップとそれ以外のリモートセットアップの配置を比較します。スタックしている場合は、モジュールとプロセッサの両方をコードで作成できます。これを行うには、ApplicationInsightsからQuickPul​​seTelemetryModuleとQuickPul​​seTelemetryProcessorの両方を削除します。configが(それも問題ではないかもしれませんが)、およびコードで次の操作を行います。アプリケーションがデプロイされているサーバー上で

    var quickPulseModule = new QuickPulseTelemetryModule();     
    quickPulseModule.Initialize(TelemetryConfiguration.Active); 
    TelemetryConfiguration.Active.TelemetryProcessorChainBuilder.Use(next => 
          { 
           var processor = new QuickPulseTelemetryProcessor(next); 
           quickPulseModule.RegisterTelemetryProcessor(processor); 
           return processor; 
          }); 
    
    TelemetryConfiguration.Active.TelemetryProcessorChainBuilder.Build(); 
    
    +0

    私はそれを試しましたが、アプリケーションは "InvalidOperationException:シーケンスに要素がありません"という新しいコードの最初の行にQuickPul​​seTelemetryModuleを作成しています。 – dbruning

    +0

    例外は最初の行にあり、 ?設定が正しくロードされていない場合、.Single()によってスローされたようなものです。 – tokaplan

    +0

    上記の答えが更新されました – tokaplan

    関連する問題