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); }
internal ClusterEntity( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filterRepository) : base(healthClient, consumer, traceWriter, config, filterRepository) { this.ClusterName = Guard.IsNotNullOrEmpty(this.Config.ClusterName, nameof(this.Config.ClusterName)); }
protected Entity( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filters) { this.HealthClient = Guard.IsNotNull(healthClient, nameof(healthClient)); this.Consumer = Guard.IsNotNull(consumer, nameof(consumer)); this.TraceWriter = Guard.IsNotNull(traceWriter, nameof(traceWriter)); this.Config = Guard.IsNotNull(config, nameof(config)); this.Filters = Guard.IsNotNull(filters, nameof(filters)); }
internal ApplicationEntity( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, string clusterName, Uri applicationUri, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filterRepository) : base(healthClient, consumer, traceWriter, config, filterRepository) { this.ClusterName = Guard.IsNotNullOrEmpty(clusterName, nameof(clusterName)); this.applicationUri = Guard.IsNotNull(applicationUri, nameof(applicationUri)); }
internal HealthDataProducer( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filterRepository) { this.healthClient = Guard.IsNotNull(healthClient, nameof(healthClient)); this.consumer = Guard.IsNotNull(consumer, nameof(consumer)); this.traceWriter = Guard.IsNotNull(traceWriter, nameof(traceWriter)); this.config = Guard.IsNotNull(config, nameof(config)); this.filterRepository = Guard.IsNotNull(filterRepository, nameof(filterRepository)); this.stopwatch = new Stopwatch(); this.stack = new Stack <IEntity>(); }
internal PartitionEntity( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, string clusterName, string applicationName, string serviceName, Guid partitionId, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filterRepository) : base(healthClient, consumer, traceWriter, config, filterRepository) { this.ClusterName = Guard.IsNotNullOrEmpty(clusterName, nameof(clusterName)); this.ApplicationName = Guard.IsNotNullOrEmpty(applicationName, nameof(applicationName)); this.ServiceName = Guard.IsNotNullOrEmpty(serviceName, nameof(serviceName)); this.PartitionId = partitionId; }
internal DeployedServicePackageEntity( FabricHealthClientWrapper healthClient, HealthDataConsumer consumer, string clusterName, Uri applicationUri, string serviceManifestName, string nodeName, TraceWriterWrapper traceWriter, IServiceConfiguration config, EntityFilterRepository filterRepository) : base(healthClient, consumer, traceWriter, config, filterRepository) { this.ClusterName = Guard.IsNotNullOrEmpty(clusterName, nameof(clusterName)); this.NodeName = Guard.IsNotNullOrEmpty(nodeName, nameof(nodeName)); this.applicationUri = Guard.IsNotNull(applicationUri, nameof(applicationUri)); this.ServiceManifestName = Guard.IsNotNullOrEmpty(serviceManifestName, nameof(serviceManifestName)); }