我需要在我正在开发的Azure Service Fabric应用程序中添加性能日志记录。我试图遵循以下指南,这看起来非常简单明了:
然而,我无法在NuGet上找到包Microsoft.ServiceFabric.Telemetry.ApplicationInsights
。由于该文章来自去年,可能事情已经发生了很大的变化,但我不确定是否为Azure Service Fabric应用程序配置Insights与任何ASP.Net应用程序完全不同(我可以从文章中暗示可能有点不同。)
有人能指出我正确的方向如何正确地做到这一点吗?
谢谢。
答案 0 :(得分:3)
NuGet包位于:https://www.nuget.org/packages/Microsoft.ServiceFabric.Telemetry.ApplicationInsights/
确保将搜索配置为包含“预发行”包。
答案 1 :(得分:2)
您可能正在https://github.com/Microsoft/ApplicationInsights-ServiceFabric寻找更新后的GitHub存储库。这将根据您的使用情况列出两个要使用的NuGet包:
答案 2 :(得分:1)
我们确实提出了自己的集成,包括对依赖性跟踪和Live Metrics Stream的支持。
基本上您需要做的是手动将Application Insights所需的依赖项和性能收集器添加到您的应用程序中,如下所示:
var configuration = new TelemetryConfiguration()
{
InstrumentationKey = aiKey
};
var module = new DependencyTrackingTelemetryModule();
module.Initialize(configuration);
QuickPulseTelemetryProcessor processor = null;
configuration.TelemetryProcessorChainBuilder
.Use(next =>
{
processor = new QuickPulseTelemetryProcessor(next);
return processor;
})
.Build();
var quickPulse = new QuickPulseTelemetryModule();
quickPulse.Initialize(configuration);
quickPulse.RegisterTelemetryProcessor(processor);
然后,要记录并关联您的前端服务和后端有状态/无状态服务的请求,您需要根据此帖子的指示拦截对SF服务的呼叫:How to add message header to the request when using default client of Azure service fabric?
可以使用一些自定义中间件将Web Api请求记录到Application Insights,这不是很难编写的。
我们已经创建了一个代码存储库,其中概述了可以在https://github.com/DeHeerSoftware/Azure-Service-Fabric-Logging-And-Monitoring
找到的工作示例。集成所有内容需要相当多的代码,所以请查看提供的存储库。它会给你一个起点。
答案 3 :(得分:0)
仍然可以使用Package Manager控制台安装软件包:
Install-Package Microsoft.ServiceFabric.Telemetry.ApplicationInsights
-Pre -Version 0.3.193-preview2
但是,请参阅重要提示“所有者已将此软件包列入未列出状态。这可能意味着该软件包已弃用或不应再使用。”
https://www.nuget.org/packages/Microsoft.ServiceFabric.Telemetry.ApplicationInsights/
看起来这个集成还处于早期阶段。此外,它目前所做的只是将ETW事件路由到App Insights。