0
我試圖給每一塊遙測器添加一堆自定義數據字段,而且這些數據在單個操作中是一致的,但是因操作而異。 我有一個自定義ITelemetryInitializer,並在我可以這樣做:將操作的自定義數據添加到Application Insights遙測
public class MyInitializer : ITelemetryInitializer
{
public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry)
{
telemetry.Context.Properties[ "platform" ] = "PC";
}
}
但我不明白,我如何想這個數據推到這個初始化。
我已經添加了這樣的事情:
public class MyInitializer : ITelemetryInitializer
{
private string mPlatform = "unknown";
public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry)
{
telemetry.Context.Properties[ "platform" ] = mPlatform;
}
public void SetPlatform(string platform)
{
mPlatform = platform
}
}
然後在控制器級別我做這樣的事情:
foreach (var init in TelemetryConfiguration.Active.TelemetryInitializers)
{
var customInit = init as MyInitializer;
if (customInit != null)
{
customInit.SetPlatform(requestPlatform);
}
}
但是,這是可怕的笨重,而且容易出錯(例如,如果在調用此函數之前發送了一段遙測數據),並且我不確定這是否是線程安全的。
傳遞這種數據的目的是什麼?