我有一个DotNet 6应用程序ASP.NET Web API应用程序,它作为Azure中的应用程序服务运行。
我没有启用固定采样。应用程序中也没有applicationinsights.json文件。
我有代码在ConfigureServices方法中禁用自适应采样。代码片段如下:'
if (!string.IsNullOrEmpty(configuration["ApplicationInsights:InstrumentationKey"]))
{
services.AddApplicationInsightsTelemetry(options =>
{
if (webHostEnvironment.IsDevelopment())
{
options.DeveloperMode = true;
options.EnableDebugLogger = false;
}
options.EnableAdaptiveSampling = false;
options.InstrumentationKey = configuration["ApplicationInsights:InstrumentationKey"];
});
services.AddApplicationInsightsTelemetryProcessor<FilterProcessor>();
services.AddSingleton<ITelemetryInitializer, NopContextInitializer>();
}
'
我的Azure应用程序洞察设置如下所示,用于接收采样
当我运行下面的查询时,我继续看到采样发生:'
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType
'几周前我的应用程序是.NET Core 3.1,无法关闭采样。即使升级到DotNet 6后,我也无法关闭采样。
有什么线索说明为什么会发生这种情况吗?
1条答案
按热度按时间bxgwgixi1#
我的应用程序中也没有applicationinsights.json文件。
当我们从Visual Studio =〉项目根文件夹添加
Application Insights Telemetry
时,默认情况下ApplicationInsights.config
会自动生成。我已经从项目根文件夹中添加了
Application Insights Telemetry
,即使我没有找到添加到应用程序中的ApplicationInsights.config
。添加
ApplicationInsights Telemetry
中可能有一些最新更改。我们可以禁用
ApplicationInsights.config
或code
的采样。由于我们没有
ApplicationInsights.config
文件,将尝试从代码中禁用采样。如MSDoc中所述,
目前只有ASP.NET服务器端遥测支持自适应采样。
在
Program.cs
中,添加以下代码行Production Environment
(部署的应用程序)。适用于.NET核心6
我的程序.cs
我的应用程序设置. json文件
引用自MSDoc