1

我在 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 服务。

知道我做错了什么吗?这些文档对我来说并没有真正的帮助,没有完整的例子来说明在一个有状态的服务中使用人工智能和远程处理。

谢谢您的回答!

4

1 回答 1

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

于 2018-10-06T01:00:08.140 回答