Azure 应用程序见解 - 从采样中排除自定义事件

标签 azure azure-application-insights telemetry

我有一个 .NET Core Web 应用程序,它将一些自定义事件遥测数据发送到 Application Insights。 自定义事件使用遥测客户端实例发送,例如像这样:

  telemetryClient.TrackEvent(Names.FileDownload, new Dictionary<string, string>()
            {
                {PropertyKeys.ProjectName, project.ProjectName},
                {PropertyKeys.ProjectUri, project.ProjectUri},
                {PropertyKeys.IsLocal, isLocal.ToString() },
                {PropertyKeys.FileSize, fileSize?.ToString() },
            });

大多数发生的数据事件都是大量的,我并不关心所有事件,因此我将采样设置为 50%。

但是,我有一两个很少发生的事件,对于这些事件,我希望跟踪每次发生的情况。

启用采样后,我发现这个关键事件几乎从未被存储。当我禁用采样时,它开始工作。

是否可以通过采样排除某些遥测项目?

问候,
巴托斯

最佳答案

是的,这是可能的。你可以写一个自定义TelemetryInitializer ,它将您想要保留的遥测项目的 SamplingPercentage 设置为 100。

这里是示例代码:

public class MyTelemetryInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        #write your own logic for somecondition
        if(somecondition)
        {
            ((ISupportSampling)telemetry).SamplingPercentage = 100;
        }
    }
}

更多详情请引用此article ,在“我总是想看到某些罕见事件。如何让它们通过采样模块?”部分。

关于Azure 应用程序见解 - 从采样中排除自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61589253/

相关文章:

c# - 使用 c# 从 Azure 外部身份协作设置读取目标域列表

c# - 如何限制 Azure Application Insights 仅记录 dotnet core 项目中的自定义事件?

mysql - 存储来自 10000 个节点的遥测数据

node.js - 使用 NodeJS SDK 引发错误时,如何在 Application Insights 中设置异常类型?

azure - 如何从 Azure 门户删除 Web App 的应用程序洞察监控(取消映射)?

android - 如何添加 Mapbox 遥测 2.0.0-SNAPSHOT 作为依赖项?

azure - 在 Windows Azure VM 上使用 LocalDB

asp.net - 与本地机相比,为什么 Azure 上的 SQL Server 数据库从虚拟机的响应速度较慢?

c# - 在 Azure 上的 WebJob 中使用连接字符串