如何将Application Insights集成到Service Fabric中?

lmj*_*ler 6 c# logging azure-application-insights azure-service-fabric

我目前使用Azure Application Insights登录我的所有Web API和MVC应用程序.显然,这种记录的大部分是自动的,这很好.对于我手动想要捕获的事件,我已经实现了一个"LoggingUtility",其中包含"LogError"和"LogInformation"等方法,它们只调用Trace.TraceError和Trace.TraceInformation(以为可以在一个实例中更改日志记录的实现)放在未来).然后,Application Insights将捕获Trace.

我已经开始在Azure Service Fabric中开发一些有状态服务,但似乎无法找到使用Application Insights的方法.我偶然发现了一些文章,指向我正在预发布的NuGet包,但现在已被删除(https://www.nuget.org/packages/Microsoft.ServiceFabric.Telemetry.ApplicationInsights/).

当然,Service Fabric模板会生成"ServiceEventSource",但首先我看不出这对Application Insights有用,理想情况下我希望通过"LoggingUtility"类完成所有日志记录.

是否可以将Application Insights集成到Service Fabric中?如果是这样,我可以继续使用Trace(通过我的"LoggingUtility"类)吗?

小智 2

您有两种选择: 1. 使用 LoggingUtility 类中的 Application Insights SDK 将信息直接发送到 AI 2. 使用 Windows Azure 诊断 (WAD) 将 Eventsource 跟踪转发到 AI,并使用 SF 项目模板中提供的 EventSource 类。您可以将该类修改为您的 LoggingUtility 类实现。

考虑到您正在 Azure 中运行 SF 群集,当前建议使用第二种方法,因为 Service Fabric 系统服务事件也使用事件跟踪。

要将 Azure 诊断配置为 AI,请按照本文中概述的步骤操作:https://azure.microsoft.com/en-us/blog/azure-diagnostics-integration-with-application-insights/

请注意,本文针对云服务和 VM,但仅使用 VM 规模集而不是 VM 来配置 Azure 诊断。那应该有效。

不再支持 NuGet 包: https: //social.msdn.microsoft.com/Forums/en-US/f0f1ad78-4d83-48e5-b1da-4a9f0eddb9b2/application-insights-for-service-fabric ?forum=AzureServiceFabric