我在 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 服务。
知道我做错了什么吗?这些文档对我来说并没有真正的帮助,没有完整的例子来说明在一个有状态的服务中使用人工智能和远程处理。
谢谢您的回答!