如何为.NET Core的Applicatoin Insights设置cloud_roleName?

时间:2018-06-25 21:58:23

标签: asp.net-core .net-core azure-application-insights

我正在尝试设置cloud_RoleName属性以消除使用Azure Application Insights跟踪的系统中的不同组件。

如何为使用ASP.NET Core运行的服务设置属性?

1 个答案:

答案 0 :(得分:3)

默认情况下填充角色名称。您观察到的不是这种情况吗,还是您想超越行为?要覆盖角色名称,以下内容应有帮助:

编写如下所示的TelemetryInitializer,将RoleName填充为所需的值。

public class MyRoleNameInitializer : ITelemetryInitializer  
 {
      public void Initialize(ITelemetry telemetry)
        {
           telemetry.Context.Cloud.RoleName = "MyCustomRoleName";
        }
 }

然后在应用程序启动类的ConfigureServices方法中,添加以下行以将TelemetryInitializer添加到配置中。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSingleton<ITelemetryInitializer, MyRoleNameInitializer>();
    }

注意:如果您在Startup类的AddApplicationInsightsTelemetry()中使用ConfigureServices来添加Application Insights,则应在 AddApplicationInsightsTelemetry()之前完成上述行如下所示。

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSingleton<ITelemetryInitializer, MyRoleNameInitializer>();
        services.AddApplicationInsightsTelemetry("ikey");
    }