2017-06-21 41 views
3

Angular2Asp.Net的Web API應用程序爲我配置了應用程序洞察資源用於跟蹤那些定製遙測應用。但我使用了兩個不同的AI鍵,一個用於Angular2應用程序,另一個用於Web API應用程序。如何前端的兩個AI的遙測數據關聯調用和Web API調用使用相關功能

我曾使用correlation功能關聯前端調用和Web API調用的兩個應用程序Insights遙測,但操作ID不匹配。

您能否告訴我如何使用關聯功能將兩個AI的前端呼叫遙測和Web API調用相關聯。

回答

2

編輯:修復評論中的附加信息。

您聽起來像您想要將相關請求與服務器請求相關聯。這通常是由兩片組合處理:

  1. disableCorrelationHeaders = false在JavaScript片段配置
  2. 確保您的API服務提供下<TelemetryInitializers>節中的ApplicationInsights.config添加OperationCorrelationTelemetryInitializer

JavaScript設置將設置x-ms-request-idx-ms-request-root-id標題由遙測初始化程序拾取。

對HttpContext.Request的initializer relies可用。

當設置操作ID時,使用單獨的儀器密鑰(iKeys)無關緊要。重要的是當你去UI中尋找這種相關的遙測。如果一切都流向相同的iKey,它將能夠被檢索。

接下來要注意的是如果您的服務器端遙測正在被採樣。默認情況下,AdaptiveSampling處理器已啓用並設置爲每秒只發送5個遙測項目。

步驟來解決

  1. 當請求被從瀏覽器發送使用Fiddler或F12工具,以確保x-ms-request-*標頭被設置。
  2. 調試您的WebAPI的應用和驗證System.Web.HttpContext.Current.Request.Headers["x-ms-request-id"]System.Web.HttpContext.Current.Request.Headers["x-ms-request-root-id"]存在
  3. 確保<Add Type="Microsoft.ApplicationInsights.Web.OperationCorrelationTelemetryInitializer, Microsoft.AI.Web"/>在你ApplicationInsights.config的<TelemetryInitializers>部分添加
  4. 增加<MaxTelemetryItemsPerSecond>了大量像5000
  5. 確保你」重新使用v2.2.0或更高版本的.NET SDK
+0

我已經嘗試過使用此鏈接並在打字稿中將disableCorrelationHeaders設置爲false。但我沒有得到我的Angular2應用程序AI和API應用程序AI遙測之間的任何關聯。目前我在Angular2應用程序中使用ng2-appinsights模塊,這將在Angular Application中支持關聯還是不支持? – pradeep

+0

我編輯了我的答案以包含更多詳細信息。 –

+0

謝謝戴維斯,你在這個問題上節省了很多時間。 – pradeep