Div*_*a S 4 azure-application-insights azure-service-fabric
我是服务Fabric的新手,并尝试将我的Windows服务应用程序集成到服务结构中.对于日志记录信息,我们计划使用Application Insights.但如果我通过我的SF应用程序发送事件,则不会记录事件.同时,通过普通的控制台/ Windows应用程序,我可以将消息记录到applicationinsights,并可以从那里查看.
然后我尝试在azure环境中创建一个VM,并在那里创建SF应用程序并将日志信息发送给AI,并且它成功运行.我将相同的代码库复制到我的本地机器并运行它,它无法正常工作.我不确定它是否与任何防火墙或代理设置有关.任何人都可以帮忙吗?
我已经使用nuget包在我的机器上安装了Microsoft.ApplicationInsights dll.我使用的版本是2.2.0.我正在使用.Net framework 4.6.1
您可以查看EventFlow以帮助您从SF服务捕获Service Fabric ETW事件并将它们发送到Application Insights.
设置起来非常简单,只需将Microsoft.Diagnostics.EventFlow.ServiceFabricNuGet 添加到Service Fabric服务项目中,然后设置pipline即可
public static void Main(string[] args)
{
try
{
using (var diagnosticsPipeline = ServiceFabricDiagnosticPipelineFactory.CreatePipeline("MyApplication-MyService-DiagnosticsPipeline"))
{
ServiceRuntime.RegisterServiceAsync("MyServiceType", ctx => new MyService(ctx)).Wait();
ServiceEventSource.Current.ServiceTypeRegistered(Process.GetCurrentProcess().Id, typeof(MyService).Name);
Thread.Sleep(Timeout.Infinite);
}
}
catch (Exception e)
{
ServiceEventSource.Current.ServiceHostInitializationFailed(e.ToString());
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
在你的eventflow.config,你可以再安装应用程序洞察为输出:
{
"inputs": [
{
"type": "EventSource",
"sources": [
{ "providerName": "Your-Service-EventSource" }
]
},
],
"filters": [
{
"type": "drop",
"include": "Level == Verbose"
}
],
"outputs": [
// Please update the instrumentationKey.
{
"type": "ApplicationInsights",
"instrumentationKey": "00000000-0000-0000-0000-000000000000"
}
],
"schemaVersion": "2016-08-11",
"extensions": []
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3725 次 |
| 最近记录: |