我有一個添加了 Application Insights 的 ASP .NET Core 應用程式。我以除錯模式在本地運行它,以每秒 10 次的速率發送請求,然后檢查遙測資料。我看到不到一半的request來自 ASP的遙測事件和不到一半的trace由ILogger我自己的代碼產生的事件。我知道自適應采樣,但認為trace默認情況下事件被排除在外?(了解應用程式日志如何成為 App Insights 中的跟蹤)。我嘗試添加顯式配置以確保沒有遙測丟失,但到目前為止它不起作用:
services.AddApplicationInsightsTelemetry((ApplicationInsightsServiceOptions opt) =>
{
opt.DeveloperMode = true;
opt.EnableAdaptiveSampling = false;
});
我可以以某種方式配置 App Insights 以在本地除錯中收集 100% 的遙測資料嗎?
在嘗試配置和建議后更新,我注意到 Visual Studio 除錯會話僅限于搜索最后 250 個事件,這就是洗掉我的遙測資料的原因。

uj5u.com熱心網友回復:
不, trace默認情況下不排除事件。
AdaptiveSamplingTelemetryProcessor默認添加兩個節點,一個包含Event采樣中的型別,另一個不包含采樣中的Event型別。
有一些我一直想看到的罕見事件。我怎樣才能讓它們通過采樣模塊?
實作這一點的最佳方法是撰寫一個自定義TelemetryInitializer,它將
SamplingPercentage要保留的遙測項上的設定為 100,如下所示。由于初始化程式保證在遙測處理器(包括采樣)之前運行,這確保了所有采樣技術都會從任何采樣考慮中忽略此項。
public class MyTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if(somecondition)
{
((ISupportSampling)telemetry).SamplingPercentage = 100;
}
}
}
您可以參考采樣 - 常見問題解答、ASP.NET Core Application Insights 自適應采樣和故障排除沒有資料 - 我的一些遙測資料丟失
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358595.html
標籤:asp.net核心 调试 当地的 azure-application-insights 采样
上一篇:在GDB中顯示地址部分
