使用 ServiceFabric StatefulServices 和 .Net Core 2.1 的 Application Insights
Posted
技术标签:
【中文标题】使用 ServiceFabric StatefulServices 和 .Net Core 2.1 的 Application Insights【英文标题】:Application Insights with ServiceFabric StatefulServices and .Net Core 2.1 【发布时间】:2019-03-11 04:55:18 【问题描述】:我在 ServiceFabric 解决方案中有一个带有远程处理功能的 ServiceFabric StatefulService,该解决方案还包含一个无状态 WebApi,并希望使用 Application Insights 来监视此服务。 WebApi 已经使用了 AI,并且运行良好。
我在一个虚拟项目中尝试了这个,在服务的构造函数中配置 AI 一切正常:
public ReliableService(StatefulServiceContext context) : base(context)
var instrumentationKey = "myIKey";
TelemetryConfiguration.Active.TelemetryInitializers.Add(
FabricTelemetryInitializerExtension.CreateFabricTelemetryInitializer(this.Context)
);
_telemetryClient = new Microsoft.ApplicationInsights.TelemetryClient InstrumentationKey = instrumentationKey ;
TelemetryConfiguration.Active.InstrumentationKey = instrumentationKey;
TelemetryConfiguration.Active.TelemetryInitializers.Add(new OperationCorrelationTelemetryInitializer());
TelemetryConfiguration.Active.TelemetryInitializers.Add(new HttpDependenciesParsingTelemetryInitializer());
new DependencyTrackingTelemetryModule().Initialize(TelemetryConfiguration.Active);
new ServiceRemotingRequestTrackingTelemetryModule().Initialize(TelemetryConfiguration.Active);
new ServiceRemotingDependencyTrackingTelemetryModule().Initialize(TelemetryConfiguration.Active);
但是当我将相同的代码复制到现有项目时,只有 WebApi 将遥测数据发送到 AI,而没有来自 statefull 服务。
知道我做错了什么吗?这些文档对我来说并没有真正的帮助,没有完整的例子来说明在有状态的服务中使用 AI 和远程处理。
感谢您的回答!
【问题讨论】:
【参考方案1】:您将需要此软件包 https://github.com/Microsoft/ApplicationInsights-ServiceFabric 以使其与 Service Remoting 一起使用。 配置故事非常不同,具体取决于您的项目类型,例如控制台应用程序、Asp.Net 或 Asp.Net Core。如果您在 Asp.Net/Asp.Net 核心项目中,配置故事将比您在虚拟项目中所做的更好。 这里有一些可能有用的例子https://github.com/yantang-msft/service-fabric-application-insights-example
【讨论】:
这里是监控和诊断SF应用docs.microsoft.com/en-us/azure/service-fabric/…的官方文档。如果您还不够清楚,请告诉我们,以便我们改进文档。 github 上的 AI Service Fabric 示例不包含对 Stateless .Net Core 服务的任何 AI 监控 - 仅包含完整的 dot net 框架服务。到目前为止,我只能为 ASP.NET Core 和全点网框架 SF 服务发送 AI 遥测。我也想了解一下如何让它适用于不基于 web/asp.net 的 .NET Core SF Reliable 服务。以上是关于使用 ServiceFabric StatefulServices 和 .Net Core 2.1 的 Application Insights的主要内容,如果未能解决你的问题,请参考以下文章
跨多个屏幕使用的 Flutter Stateful Widget 正在重建
Flutter: Stateful 挂件 vs Stateless 挂件
keras lstm 区别 stateless 和 stateful