protected override async Task RunAsync(CancellationToken cancellationToken) { if (this.healthDataService == null) { // compose the HealthDataService instance with all the dependencies. var config = new ServiceConfiguration(this.serviceContext.CodePackageActivationContext, TraceWriter); var filterRepository = new EntityFilterRepository(config); var healthClient = new FabricHealthClientWrapper( TraceWriter, this.serviceContext.ServiceTypeName, this.serviceContext.PartitionId, this.serviceContext.ReplicaId); var eventWriter = new MonitoringEventWriter(); var metricsEmitter = new MetricsEmitter(config, TraceWriter); var consumer = new IfxHealthDataConsumer(eventWriter, metricsEmitter); var producer = new HealthDataProducer(healthClient, consumer, TraceWriter, config, filterRepository); this.healthDataService = new HealthDataService(producer, TraceWriter, config, filterRepository); this.TraceInfo("Service.RunAsync: Composed new HealthDataService instance"); } this.TraceInfo("Service.RunAsync: Invoking HealthDataService.RunAsync"); await this.healthDataService.RunAsync(cancellationToken).ConfigureAwait(false); }
public IfxHealthDataConsumer(MonitoringEventWriter eventWriter, MetricsEmitter metrics) { this.eventWriter = Guard.IsNotNull(eventWriter, nameof(eventWriter)); this.metrics = Guard.IsNotNull(metrics, nameof(metrics)); }