2015-06-18 2 views
5

olarak adlandırılan verilerden hiçbir veri göndermiyor Doğrudan kodumda TelemetryClient (v0.17.0.576) kullanıyorum ve sanki sadece elle Flush'i çağırdığımda verileri Azure'a taşıyabiliyorum gibi görünüyor. yanlış. Burada bir şey mi eksik? Performans nedeniyleTelemetryClient,

var configuration = TelemetryConfiguration.CreateDefault(); 
      configuration.InstrumentationKey = "KEY"; 
      var client = new TelemetryClient(configuration); 

      for (int i = 0; i < 10; i++) 
      { 
       log.Information("Loop: {0} {1}", i, value); 

       client.Track(new TraceTelemetry(value)); 
      } 

      client.Flush(); 
+0

Bu C# veya Java mı? Microsoft belge sitesinde listelenen TelemetryClient, bir Flush yöntemi içermiyor, bu nedenle en son sürümü kullanıyor musunuz? İstemci desteğini IDEposable (Dolandırıldıklarında Flush mı?) Ise Doe –

+0

C#, dokümanlar güncel görünmüyor. –

cevap

7

, Uygulama Insights SDK toplu telemetri ve topaklar halinde onu gönderir. Bunu eylem halinde görmek için Flush çağrınızı Thread.Sleep (70000) aramasıyla değiştirebilirsiniz ve uygulama sona erdikten sonra AI'ya yüklenen enstrümanları göreceksiniz.

+0

Daha önce eklendi. Veri gelmek için bir veri noktasında beklerdim. Console.ReadLine() için değiştirdiğimde her şey çalışmaya başladı. –

+0

Çalıştığına sevindim. Uygulamada bir kesme noktası eklemek, tüm uygulamayı duraklatır (yeniden başlayana kadar) ve bu şekilde telemetri yüklemesi de duraklatılır. –

+1

Mantıklı, ancak geliştirme biraz zorlaştırıyor. –

0

Mario Hewardt'in yanıtına ekleme. Eğer persistence channel kullanıyorsanız:

TelemetryConfiguration.Active.TelemetryChannel = new PersistenceChannel(); 

Flush() eşzamanlı olan (böylece bir uyku süresinin bir abitrary uzunluğu için iş parçacığı gerekmez). Ayrıca, Uygulama Insights'a ulaşılamıyorsa telemetri verilerinin yerel bir dosyaya kaydedilmesi de yararlı olacaktır. Bu, daha sonra Flush() numaralı telefona iyi bir bağlantıyla gönderilecektir.

+0

Bir Microsoft kaynağındaki bağlantılı makalenin alt kısmındaki bir yorum, 'PersistenceChannel'in bakım modunda olan Aygıt SDK'sinin bir parçası olduğunu' iddia ediyor. Önerilen yaklaşımı, HockeyApp'a geçmek veya Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel'i nuget'ten denemek – Josh