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

Cra*_*ham 3 azure-application-insights .net-core asp.net-core

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

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

cij*_*mas 5

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

编写一个如下所示的 TelemetryInitializer 来将 RoleName 填充到您想要的值。

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

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

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddSingleton<ITelemetryInitializer, MyRoleNameInitializer>();
    }
Run Code Online (Sandbox Code Playgroud)

注意:如果你AddApplicationInsightsTelemetry()ConfigureServices你的 Startup 类中使用了添加 Application Insights,那么上面这行应该 AddApplicationInsightsTelemetry()如下所示之前完成。

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