2017-05-18 16 views
2

アプリケーションのページビューとカスタムイベントをトラッキングするためにアプリケーションインサイトを使用したUWPアプリケーションを開発しました。アプリケーション終了イベント中にカスタムイベントを追加しましたが、アプリケーションを閉じる他のすべてのカスタムイベントとページビューが追跡されているところでは、イベントは追跡されません。分析では、AIがイベントを送信するのに時間がかかります。この時間を短縮する方法はありますか?Application Insightsイベントの送信に時間がかかります

+0

アプリケーション洞察複数のプラットフォーム上のWeb開発者のための拡張可能なアプリケーションパフォーマンス管理(APM)サービスです。 2016年6月15日から、iOS、Android、Windowsストア、Windows PhoneアプリのデータをApplication Insightsで表示しなくなります。代わりに、HockeyAppを通じてこのデータにアクセスできます。 [モバイルアプリケーションのアプリケーションインサイトからHockeyAppへの移行](https://azure.microsoft.com/en-us/blog/transitioning-mobile-apps-from-application-insights-to-hockeyapp/)を参照してください。 –

答えて

4

Application Insights SDKのflushは、遠隔測定をバッファ内に残すよう努めていますが、配信を保証するものではありません。

最後のイベントが送信されていることを確認する1つの方法は、プロセスを終了する前に単純なthread.sleepコールを追加することです。ただし、すべてのイベントが同期問題で送信されることを確認したい場合は、復帰前にイベントを送信する独自​​のテレメトリチャネルを実装することができます。

あなたはthe full example hereを見ることができますが、簡単な同期テレメトリチャネルは次のようになります。

class SyncTelemetryChannel : ITelemetryChannel 
{ 
    private Uri endpoint = new Uri("https://dc.services.visualstudio.com/v2/track"); 

    public bool? DeveloperMode { get; set; } 

    public string EndpointAddress { get; set; } 

    public void Dispose() { } 

    public void Flush() { } 

    public void Send(ITelemetry item) 
    { 
     byte[] json = JsonSerializer.Serialize(new List<ITelemetry>() { item }, true); 
     Transmission transimission = new Transmission(endpoint, json, "application/x-json-stream", JsonSerializer.CompressionType); 
     var t = transimission.SendAsync(); 
     t.Wait(); 
    } 
} 
関連する問題