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

标签 c# logging azure-service-fabric azure-application-insights

我目前使用 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 诊断。这应该有效。

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

关于c# - 如何将 Application Insights 集成到 Service Fabric 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38817452/

相关文章:

c# - 如何在 C# 中为命令创建延迟?

git 存储库克隆日志记录

windows - Service Fabric 多节点 X509 群集 - 等待安装程序服务完成超时

asp.net-web-api - Azure Service Fabric SDK 2.6.210 在 Visual Studio 2017 上缺少无状态 Web API 模板?

c# - 跨不同系统使用 Azure Service Fabric Reliable Actors

c# - 比较两个集合列表

c# - 如何在现有 Azure MVC ASP.NET Web 应用程序上启用 "host in the cloud"

c# - ASP.NET 核心 : How to pass connection string to DBContext?

java - 通过外部属性文件重定向 Commons 日志记录而不编辑 jar 或 SLF4J?

java - 为 Java Logger 优化磁盘写入