コード例 #1
0
 public override void EmitPartitionHealthEvent(
     PartitionEntity partition, EntityHealthEvent healthEvent)
 {
     AppendHealthEventToFile(
         string.Format(
             "partitionHealthEventMetric: ClusterName: {0}, AppName: {1}, ServiceName: {2}, PartitionId: {3}",
             partition.ClusterName,
             partition.ApplicationName,
             partition.ServiceName,
             partition.PartitionId.ToString()),
         healthEvent);
 }
コード例 #2
0
        public virtual void EmitPartitionHealthState(PartitionEntity partition)
        {
            if (!this.isMetricsEnabled)
            {
                return;
            }

            this.partitionHealthMetric.LogValue(
                1,
                partition.ClusterName,
                partition.ApplicationName,
                partition.ServiceName,
                partition.PartitionId.ToString(),
                partition.Health.AggregatedHealthState.ToString());
        }
コード例 #3
0
 public virtual void LogPartitionHealthEvent(
     PartitionEntity partition, EntityHealthEvent healthEvent)
 {
     MonitoringEventSource.Current.LogPartitionHealthEvent(
         partition.ClusterName,
         partition.ApplicationName,
         partition.ServiceName,
         partition.PartitionId.ToString(),
         healthEvent.HealthState.ToString(),
         healthEvent.Description,
         healthEvent.Property,
         healthEvent.SequenceNumber.ToString(),
         healthEvent.SourceId,
         healthEvent.IsExpired.ToString());
 }
コード例 #4
0
        /// <inheritdoc />
        public async Task <PartitionEntity> GetPartitionAsync(Guid partitionGuid, CancellationToken token)
        {
            var partition = new PartitionEntity(
                (await FabricClientRetryHelper.ExecuteFabricActionWithRetryAsync(() => this.fabricClient.QueryManager.GetPartitionAsync(partitionGuid), token)
                 .ConfigureAwait(false)).Single());

            if (partition.PartitionStatus == ServicePartitionStatus.Deleting)
            {
                return(partition);
            }

            partition.Application = await this.GetPartitionApplicationAsync(partitionGuid, token).ConfigureAwait(false);

            partition.Service = await this.GetPartitionServiceAsync(partitionGuid, token).ConfigureAwait(false);

            return(partition);
        }
コード例 #5
0
        public override Task ProcessPartitionHealthAsync(PartitionEntity partition)
        {
            this.eventWriter.LogPartitionHealthState(partition);
            this.metrics.EmitPartitionHealthState(partition);

            if (partition.IsHealthEventReportingEnabled(
                    partition.ApplicationName,
                    partition.Health.AggregatedHealthState))
            {
                partition.Health.HealthEvents
                .ForEachHealthEvent(healthEvent =>
                {
                    this.eventWriter.LogPartitionHealthEvent(partition, healthEvent);
                });
            }

            return(this.completedTask);
        }
コード例 #6
0
        public virtual void EmitPartitionHealthEvent(
            PartitionEntity partition, EntityHealthEvent healthEvent)
        {
            if (!this.isMetricsEnabled)
            {
                return;
            }

            this.partitionHealthEventMetric.LogValue(
                1,
                partition.ClusterName,
                partition.ApplicationName,
                partition.ServiceName,
                partition.PartitionId.ToString(),
                healthEvent.HealthState.ToString(),
                healthEvent.SourceId,
                healthEvent.Property,
                healthEvent.IsExpired.ToString());
        }