【问题标题】:Azure Functions - Application Insights - Custom Telemetry - EventSource instance already existsAzure Functions - Application Insights - 自定义遥测 - EventSource 实例已存在
【发布时间】:2017-07-25 00:39:18
【问题描述】:

我正在尝试按照Insights Preview 中的说明创建自定义遥测。我完全按照说明进行操作。但也许我配置错了。

我在local.settings.json 文件中设置了APPINSIGHTS_INSTRUMENTATIONKEY,它似乎工作正常。但是当我添加一个新的TelemetryClient 时,我开始收到那些重复的错误(如下)。它在函数被调用时发生。

我真的希望将来自 AF 的遥测数据发送到同一个 AI 仪表键,以便我可以一起查看。

我还取消了Microsoft.Extensions.Logging,因为我只想使用 AI,如果这有什么不同的话。

有人有什么建议吗?

见下文...

TIA

ERROR: Exception in Command Processing for EventSource Microsoft-ApplicationInsights-Core: An instance of EventSource with Guid 74af9f20-af6a-5582-9382-f21f674fb271 already exists.
ERROR: Exception in Command Processing for EventSource Microsoft-ApplicationInsights-Core: An instance of EventSource with Guid 74af9f20-af6a-5582-9382-f21f674fb271 already exists.
Microsoft.WindowsAzure.ServiceRuntime Critical: 102 : Unexpcted Exception During Runtime Startup:
System.TypeInitializationException: The type initializer for '<Module>' threw an exception. ---> <CrtImplementationDetails>.ModuleLoadException: The C++ module failed to load while attempting to initialize the default appdomain.
 ---> System.Runtime.InteropServices.COMException: Invalid operation. (Exception from HRESULT: 0x80131022)
   at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
   at <CrtImplementationDetails>.GetDefaultDomain()
   at <CrtImplementationDetails>.DoCallBackInDefaultDomain(IntPtr function, Void* cookie)
   at <CrtImplementationDetails>.LanguageSupport.InitializeDefaultAppDomain(LanguageSupport* )
   at <CrtImplementationDetails>.LanguageSupport._Initialize(LanguageSupport* )
   at <CrtImplementationDetails>.LanguageSupport.Initialize(LanguageSupport* )
   --- End of inner exception stack trace ---
   at <CrtImplementationDetails>.LanguageSupport.Initialize(LanguageSupport* )
   at .cctor()
   --- End of inner exception stack trace ---
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment()
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor()
ERROR: Exception in Command Processing for EventSource Microsoft-ApplicationInsights-Data: An instance of EventSource with Guid a62adddb-6b4b-519d-7ba1-f983d81623e0 already exists.

【问题讨论】:

    标签: azure azure-functions azure-application-insights


    【解决方案1】:

    为了简单起见,我重新开始了一个新的 AF 项目(和一杯酒)。

    以下代码有效:

    private static TelemetryConfiguration config = new TelemetryConfiguration { InstrumentationKey = System.Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY", EnvironmentVariableTarget.Process)};
    private static TelemetryClient telemetryClient = new TelemetryClient(config);
    

    此代码(直接来自预览帖子)没有:

    private static TelemetryClient telemetryClient = new TelemetryClient();
    private static string key = TelemetryConfiguration.Active.InstrumentationKey = System.Environment.GetEnvironmentVariable("APPINSIGHTS_INSTRUMENTATIONKEY", EnvironmentVariableTarget.Process);
    

    一个不幸的副作用是遥测不会自动显示在 VS2017 Application Insights 窗口中。您必须使用设置工具选择所需的 AI 存储库,然后才能看到它。几分钟后,但总比没有好。

    【讨论】:

    • 我的立场是正确的。看起来 VS2017 Preview Azure Functions 从未在 AI 窗口中显示任何遥测数据。似乎我对现场的 VS2017 感到困惑。当然,我仍然可以将其配置错误。
    猜你喜欢
    • 1970-01-01
    • 2016-12-09
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多