我正在尝试设置cloud_RoleName属性以消除使用Azure Application Insights跟踪的系统中的不同组件。
如何为使用ASP.NET Core运行的服务设置属性?
答案 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");
}