我正在尝试理解采样数据。而且我似乎无法在任何地方找到确切的措辞。有时,我碰巧没有将应用程序中的所有日志记录在跟踪中。我只根据需要记录事情,这很好。我在日志中没有收到任何意外数据。
这是我的配置:
services.AddLogging();
services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
var telemetryProcessorChainBuilder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5, excludedTypes: "Request;Exception");
telemetryProcessorChainBuilder.Build();
});
services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
EnableAdaptiveSampling = false,
});
在 Azure 中,采样设置为 100%。
这是日志跟踪。有时我会正确记录两次,有时只正确记录一次。这也很奇怪,但有时它只是记录“较慢”,这可能是有道理的。 在此输入图片描述
这里仍然是给定秒的日志跟踪。 在此输入图片描述
我的第一个问题。采样是针对相同消息的设置吗?或者通常适用于所有消息? IE。如果我收到 5 条相同措辞的消息,我不会再丢更多消息,或者如果我在一秒钟内收到 5 条不同的消息,我不会再丢更多消息?取决于我的配置。
第二个更重要的问题“我的痕迹会因为采样设置而消失吗?”或者是别的什么?如果只有我知道的日志从应用程序中输出,应该如何设置采样?完全关闭吗?或者设置更多的项目?
谢谢
我读过微软的文档,它为我澄清了很多事情,但不幸的是它并不完全清楚。 我读过文章和讨论,但没有发现太多。
您的设置意味着: