我目前使用 Azure Application Insights 登录我的所有 Web API 和 MVC 应用程序。显然,大部分日志记录都是自动的,这很棒。对于我手动想要捕获的事件,我已经实现了一个“LoggingUtility”,它具有像“LogError”和“LogInformation”这样的方法,它们只调用 Trace.TraceError 和 Trace.TraceInformation(我的想法是日志记录的实现可以在一个放置在未来)。 Trace 然后由 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”类)吗?
最佳答案
您有两个选择: 1. 在 LoggingUtility 类中使用 Application Insights SDK 将信息直接发送到 AI 2. 使用 SF 项目模板中提供的 EventSource 类,使用 Windows Azure 诊断 (WAD) 将 Eventsource 跟踪转发到 AI。您可以修改该类作为您的 LoggingUtility 类实现。
考虑到您在 Azure 中运行 SF 集群,目前推荐第二种方法,因为 Service Fabric 系统服务事件也在使用事件跟踪。
要将 Azure 诊断配置为 AI,请按照本文中概述的步骤操作:https://azure.microsoft.com/en-us/blog/azure-diagnostics-integration-with-application-insights/
请注意,本文针对云服务和 VM,但仅使用 VM 规模集而不是 VM 来配置 Azure 诊断。这应该有效。
关于c# - 如何将 Application Insights 集成到 Service Fabric 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38817452/