1

我对 Azure Application Insights Sampling 有疑问。

我确实需要 10% 的采样率,我知道我可以在 Application Insights 上使用applicationinsights.json. 但是我也有一个用例,我不想根据参数对某些请求进行采样(过滤掉)。例如,假设我遇到了手动测试请求,那么我不希望它被采样过滤。另一个用例,假设对于特定用户,我不希望请求被过滤。

但是这个配置不是静态的,这意味着,我无法在applicationinsights.json. 我需要在请求级别决定它。我将需要检查一些请求参数,并根据它们决定是否对该请求进行采样。

这有可能实现吗?如果是,您能否分享代码/文档?

4

1 回答 1

1

我相信这是通过提供自定义 TelemetryInitializer 来实现的。

请参阅问题“我一直想看到某些罕见的事件。我怎样才能让它们通过采样模块?” 在采样文档中:https ://docs.microsoft.com/en-us/azure/azure-monitor/app/sampling

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        if (somecondition)
        {
            ((ISupportSampling)telemetry).SamplingPercentage = 100;
        }
    }
}
于 2020-12-15T13:27:30.080 回答