示例#1
0
 /// <summary>
 /// </summary>
 /// <param name="replica"></param>
 /// <param name="failureMsg"></param>
 /// <param name="impact"></param>
 public ReplicaOpenFailed(ReplicaEntity replica, string failureMsg, string impact)
 {
     Assert.IsNotNull(replica, "ReplicaEntity can't be null");
     Assert.IsNotEmptyOrNull(impact, "impact");
     Assert.IsNotEmptyOrNull(failureMsg, "failureMsg");
     this.FailingReplica = replica;
     this.Failure        = failureMsg;
     this.Impact         = impact;
 }
示例#2
0
 public virtual void LogReplicaHealthState(ReplicaEntity replica)
 {
     MonitoringEventSource.Current.LogReplicaHealthState(
         replica.ClusterName,
         replica.ApplicationName,
         replica.ServiceName,
         replica.PartitionId.ToString(),
         replica.ReplicaId.ToString(),
         replica.Health.AggregatedHealthState.ToString(),
         replica.Health.GetHealthEvaluationString());
 }
 public override void EmitReplicaHealthState(ReplicaEntity replica)
 {
     AppendToFile(
         string.Format(
             "replicaHealthMetric: ClusterName: {0}, AppName: {2}, ServiceName: {3}, PartitionId: {4}, ReplicaId: {5}, HealthState: {1}",
             replica.ClusterName,
             replica.Health.AggregatedHealthState.ToString(),
             replica.ApplicationName,
             replica.ServiceName,
             replica.PartitionId,
             replica.ReplicaId));
 }
示例#4
0
 public override void LogReplicaHealthState(ReplicaEntity replica)
 {
     AppendToFile(
         string.Format(
             "LogReplicaHealthState: ClusterName: {0}, AppName:{3}, ServiceName:{4}, PartitionId:{5}, ReplicaId:{6}, HealthState: {1}, EvaluationString: {2}",
             replica.ClusterName,
             replica.Health.AggregatedHealthState.ToString(),
             replica.Health.GetHealthEvaluationString(),
             replica.ApplicationName,
             replica.ServiceName,
             replica.PartitionId.ToString(),
             replica.ReplicaId.ToString()));
 }
示例#5
0
 public override void LogReplicaHealthEvent(
     ReplicaEntity replica, EntityHealthEvent healthEvent)
 {
     AppendHealthEventToFile(
         string.Format(
             "LogReplicaHealthEvent: ClusterName: {0}, AppName: {1}, ServiceName: {2}, PartitionId: {3}, ReplicaId: {4}",
             replica.ClusterName,
             replica.ApplicationName,
             replica.ServiceName,
             replica.PartitionId.ToString(),
             replica.ReplicaId.ToString()),
         healthEvent);
 }
示例#6
0
        public virtual void EmitReplicaHealthState(ReplicaEntity replica)
        {
            if (!this.isMetricsEnabled)
            {
                return;
            }

            this.replicaHealthMetric.LogValue(
                1,
                replica.ClusterName,
                replica.ApplicationName,
                replica.ServiceName,
                replica.PartitionId.ToString(),
                replica.ReplicaId.ToString(),
                replica.Health.AggregatedHealthState.ToString());
        }
示例#7
0
 public virtual void LogReplicaHealthEvent(
     ReplicaEntity replica, EntityHealthEvent healthEvent)
 {
     MonitoringEventSource.Current.LogReplicaHealthEvent(
         replica.ClusterName,
         replica.ApplicationName,
         replica.ServiceName,
         replica.PartitionId.ToString(),
         replica.ReplicaId.ToString(),
         healthEvent.HealthState.ToString(),
         healthEvent.Description,
         healthEvent.Property,
         healthEvent.SequenceNumber.ToString(),
         healthEvent.SourceId,
         healthEvent.IsExpired.ToString());
 }
示例#8
0
        public override Task ProcessReplicaHealthAsync(ReplicaEntity replica)
        {
            this.eventWriter.LogReplicaHealthState(replica);
            this.metrics.EmitReplicaHealthState(replica);

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

            return(this.completedTask);
        }
示例#9
0
        public virtual void EmitReplicaHealthEvent(
            ReplicaEntity replica, EntityHealthEvent healthEvent)
        {
            if (!this.isMetricsEnabled)
            {
                return;
            }

            this.replicaHealthEventMetric.LogValue(
                1,
                replica.ClusterName,
                replica.ApplicationName,
                replica.ServiceName,
                replica.PartitionId.ToString(),
                replica.ReplicaId.ToString(),
                healthEvent.HealthState.ToString(),
                healthEvent.SourceId,
                healthEvent.Property,
                healthEvent.IsExpired.ToString());
        }