我是服务Fabric的新手,并尝试将我的Windows服务应用程序集成到服务结构中 . 对于日志记录信息,我们计划使用Application Insights . 但如果我通过我的SF应用程序发送事件,则不会记录事件 . 同时,通过普通的控制台/ Windows应用程序,我可以将消息记录到applicationinsights,并可以从那里查看 .
然后我尝试在azure环境中创建一个VM,并在那里创建SF应用程序并将日志信息发送给AI,并且它成功运行 . 我将相同的代码库复制到我的本地机器并运行它,它无法正常工作 . 我不确定它是否与任何防火墙或代理设置有关 . 任何人都可以帮忙吗?
我已经使用nuget包在我的机器上安装了Microsoft.ApplicationInsights dll . 我使用的版本是2.2.0 . 我正在使用.Net framework 4.6.1
3 回答
您可以查看EventFlow以帮助您从SF服务捕获Service Fabric ETW事件并将它们发送到Application Insights .
设置起来非常简单,只需将
Microsoft.Diagnostics.EventFlow.ServiceFabric
NuGet添加到您的Service Fabric服务项目即可then setup a pipline在
eventflow.config
中,您可以setup Application Insights作为输出:您可以调整Microsoft Samples中的监视程序服务 . 监视程序服务是一种通用的独立服务结构状态服务,它将数据记录到Application Insights中 .
将监视程序应用程序和监视程序服务添加到您的解决方案中 .
在WatchDogService -PackageRoot / Config / ServiceManifest.xml中添加Azure App ID
在需要监视的服务中,在“运行异步”命令中,添加以下行(示例位于以下链接中提供的“测试无状态服务”中)
码:
那应该是它!它可选择使用Azure存储 . 我没有必要实现它以使监视器启动并运行 .
这是链接:https://github.com/Azure-Samples/service-fabric-watchdog-service
yoape建议的EventFlow方法的替代方案是Azure诊断(WAD) .
Setup WAD in SF VMSS
Setup AI upload in WAD
它的优点在于它完全由Azure管理,您无需更改项目中的任何内容 .