如何将Application Insights集成到Service Fabric中

本文关键字:Service Fabric 集成 Insights Application | 更新日期: 2023-09-27 18:01:09

我目前使用Azure Application Insights登录我的所有Web API和MVC应用程序。显然,大多数日志记录都是自动的,这很好。对于我手动想要捕获的事件,我实现了一个"LoggingUtility",它有像"LogError"answers"LogInformation"这样的方法,只需调用Trace。TraceError和Trace。TraceInformation(想法是日志记录的实现可能在未来的某个地方发生变化(。然后,Application Insights将捕获跟踪。

我已经开始在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"类(吗?

如何将Application Insights集成到Service Fabric中

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

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

要将Azure Diagnostics配置为AI,请遵循本文中概述的步骤:https://azure.microsoft.com/en-us/blog/azure-diagnostics-integration-with-application-insights/

请注意,本文针对云服务和虚拟机,但只使用虚拟机规模集来配置Azure诊断,而不是虚拟机。这应该行得通。

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

我们使用了新的Microsoft。扩展。记录并编写了一个见解记录器-它通过Trace获取服务结构消息,我们还提取了它没有添加太多的所有ETW内容。