有没有办法在Application Insights自定义事件中设置appName?

时间:2017-01-17 16:57:50

标签: azure azure-application-insights

我注意到App Insights在分析工具中查询时有一个名为appName(和appId)的字段(请参见下文),但是我没有看到在客户端库中设置此方法的方法。可以这样设置吗?

我尝试将相关项目记录到应用洞察,但日志来源可能不同。使用该字段似乎是处理该场景的一种很好的方式,尽管我对不同的场景持开放态度。

screen shot of analytics tool

2 个答案:

答案 0 :(得分:5)

这些值在后端填充并指定Application Insights资源详细信息,因此无法更改。

您正在寻找的是custom dimensions

例如,发送遥测:

Hello

要查询这些自定义维度:

EventTelemetry telemetry = new EventTelemetry("my custom event");
telemetry.Properties.Add("MyApp", "HelloWorld");
telemetryClient.TrackEvent(telemetry);

答案 1 :(得分:4)

您可以在预览中设置应用程序名称。这是通过以下方式完成的:

  • 启用预览应用程序地图
  • 设置ITelemetry.Context.Cloud.RoleName(这是应用程序名称)

启用预览:转到门户网站 - >应用见解 - >预览 - >启用多角色应用程序映射

设置应用程序名称:

这是通过添加拦截器来完成的:

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

将拦截器添加到startup.cs中的应用程序洞察配置:

private void ConfigureAppInsights(IServiceCollection services)
{
    services.AddApplicationInsightsTelemetry(Configuration);
    TelemetryConfiguration.Active.TelemetryInitializers
       .Add(new ServiceNameInitializer());
}

阅读详情:cross-process-application-insights-with-multi-role-application-map