2017-01-04 17 views
1

application insightsをセットアップしてクラスライブラリプロジェクトで使用しようとしています。私はVisual Studioでデバッグ中にオフラインモードで使用したいと思います。クラスのmainメソッドに続いてアプリケーションビジュアルスタジオのクラスライブラリの洞察

_telemetryClient = new TelemetryClient(); 

// Set session data: 
_telemetryClient.Context.User.Id = Environment.UserName; 
_telemetryClient.Context.Session.Id = Guid.NewGuid().ToString(); 
_telemetryClient.Context.Device.OperatingSystem = Environment.OSVersion.ToString(); 

-

(私のlibのための「メイン」クラスEngine.csのコンストラクタで):私はこれを持っているいくつかのガイドに従った後

var metrics = new Dictionary<string, double>(); 
var properties = new Dictionary<string, string>(); 
try 
{ 
    // Do stuff and track metrics code... 

    telemetryClient?.TrackEvent("Some Event", properties, metrics); 
    _telemetryClient?.Flush(); 
    System.Threading.Thread.Sleep(1000); 
} 
catch (Exception exception) 
{ 
    _telemetryClient?.TrackException(exception, properties, metrics); 
    _telemetryClient?.Flush(); 
    throw; 
} 

私はlbraryを消費し、呼び出し元のコードに(例えばアズールキーなど)のロギングを設定することがしたいので、このプロジェクトは、他の構成となしapplicationinsights.conを持っていませんイチジク。

しかし、これをVSでデバッグする場合、[アプリケーションInsightsリソースの選択] - >最後のデバッグセッションを選択した後、 'Application Insights Searchにデータがありません。

+0

申し訳ありませんが、私が間違っている場合は音がしますが、私を修正してください。私はアプリケーションの洞察力が、システムがどのように負荷をかけているか(つまり、一度にシステムの一部に何人のユーザーがアクセスしているか)を判断する手段として作成されたと考えました。 Application Insightを使用すると、アクセスしているのはあなただけです。このシステムを使用してローカル専用ライブラリーを実行する場合、どのようなデータが必要ですか?たぶん、代わりに内蔵のプロファイルシステムを使用しますか? –

+0

これは完全に有効なappinsightsの使用法です。それはまた、使用(カスタムイベント)、例外などを処理します。 –

答えて

3

あなたのアプリケーションがアプリケーションの洞察力を使用していることをVSが知り、デバッガがAIデータを監視するためには、applicationinsights.configファイルが必要です(基本的にikeyが空でなくても)このプロジェクトはスタートアッププロジェクトです。デバッガが起動したら

することは、我々は、デバッガの起動の種類は、我々が認識する1、 AIの設定を持っているスタートアッププロジェクトのいずれかの場合であるかどうかを確認します。 AIが検出されない場合、AIサービスは、AIがないプロジェクトでは何の理由もなく、デバッガの監視を止め、デバッガを停止させません。

<?xml version="1.0" encoding="utf-8"?> 
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings"> 
    <!-- this file should NOT be set to copy output, it is here to allow the AI tools in Visual Studio to watch this project when debugging --> 
</ApplicationInsights> 

を、プロジェクトの設定で「コピーしない」にファイルを設定します。

は、だから、この内容でスタートアッププロジェクトにApplicationInsights.configファイルを追加します。スタートアッププロジェクトにはが存在し、プロジェクト出力には存在しません。が必要です。ファイルは出力ディレクトリにコピーされないため、AI sdkはファイルをロードせず、コード内にTelemetryClientを構成するために使用した設定が使用されます。

また、あなたがだけは、デバッグ時間のもののためのAIを使用している場合、私はあなたがFlush呼び出しを必要としないかなりは確信している、私はデバッグモードで私たちが求めて出力は以下のように書かれていると信じて遠隔測定が記録されます。フラッシュ呼び出しが発生したときではありません。

デバッグ検索で最後の250イベントだけが表示されていても、デバッグするときに、Application Insightsツールバーのボタンには、見たイベントの数が表示されます。

+0

完璧に動作します!ご協力いただきありがとうございます。 AI docsが設定ファイルが必要でないと述べて以来、奇妙なことが起きています。 –

+0

* configでコードを実行していても、toolingのいくつかの機能には必要ですが、実行時にconfigファイルは必要ありません。 –

関連する問題