应用洞察对采样数据的误解

问题描述 投票:0回答:1

我正在尝试理解采样数据。而且我似乎无法在任何地方找到确切的措辞。有时,我碰巧没有将应用程序中的所有日志记录在跟踪中。我只根据需要记录事情,这很好。我在日志中没有收到任何意外数据。

这是我的配置:

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%。

这是日志跟踪。有时我会正确记录两次,有时只正确记录一次。这也很奇怪,但有时它只是记录“较慢”,这可能是有道理的。

enter image description here

这里仍然是给定秒的日志跟踪。

enter image description here

我的第一个问题。 采样是针对相同消息的设置吗?或者通常适用于所有消息? 即如果我收到 5 条相同措辞的消息,我不会再丢更多消息,或者如果我在一秒钟内收到 5 条不同的消息,我不会再丢更多消息?取决于我的配置。

第二个更重要的问题“我的痕迹”会因为采样设置而消失吗?或者是别的什么?如果只有我知道的日志从应用程序中输出,应该如何设置采样?完全关闭吗?或者设置更多的项目?

我读过微软的文档,它为我澄清了很多事情,但不幸的是它并不完全清楚。

我读过文章和讨论,但没有发现太多。

c# .net azure azure-application-insights sampling
1个回答
0
投票

您的设置意味着:

  • 您已禁用默认的自适应采样,因为您正在使用自定义配置
  • 此处的自适应采样将遥测项目限制为每秒最多 5 个,但此采样中不包括请求和异常遥测类型。这意味着无论数量如何,所有请求和异常遥测数据都将始终被发送。
  • 所以回答您的第一个问题:采样适用于特定类型的所有消息(此处适用于除请求和异常之外的所有类型)
  • 回答您的第二个问题:如果您每秒发送的项目超过 5 个,这些项目将不会被存储甚至发送。
  • 您可以将 TelemetryProcessors 与自适应采样一起使用来过滤掉您不想拥有的所有其他日志。
© www.soinside.com 2019 - 2024. All rights reserved.