Beispiel #1
0
            public static void DeadSuccess(EndpointExecutorFsm fsm, ICollection <IMessage> messages)
            {
                Preconditions.CheckArgument(fsm.Status.LastFailedRevivalTime.HasValue);

                CultureInfo culture  = CultureInfo.InvariantCulture;
                DateTime    reviveAt = fsm.Status.LastFailedRevivalTime.GetOrElse(fsm.systemTime.UtcNow).SafeAdd(fsm.config.RevivePeriod);

                Log.LogWarning(
                    (int)EventIds.DeadSuccess,
                    "[DeadSuccess] Dropped {0} messages. BatchSize: {1}, LastFailedRevivalTime: {2}, UnhealthySince: {3}, ReviveAt: {4}, {5}",
                    messages.Count,
                    messages.Count,
                    fsm.Status.LastFailedRevivalTime.GetOrElse(Checkpointers.Checkpointer.DateTimeMinValue).ToString(DateTimeFormat, culture),
                    fsm.Status.UnhealthySince.GetOrElse(Checkpointers.Checkpointer.DateTimeMinValue).ToString(DateTimeFormat, culture),
                    reviveAt.ToString(DateTimeFormat, culture),
                    GetContextString(fsm));

                SetProcessingInternalCounters(fsm, "Dropped", messages);
                SetDroppedEgressUserMetricCounter(fsm, messages);

                FailureKind failureKind = fsm.currentCheckpointCommand?.Result?.SendFailureDetails.GetOrElse(DefaultFailureDetails).FailureKind ?? FailureKind.InternalError;

                foreach (IMessage message in messages)
                {
                    Routing.UserAnalyticsLogger.LogDroppedMessage(fsm.Endpoint.IotHubName, message, fsm.Endpoint.Name, failureKind);
                }
            }
Beispiel #2
0
 static void LogUnhealthyEndpointOpMonError(EndpointExecutorFsm fsm, FailureKind failureKind)
 {
     if (!fsm.lastFailedRevivalTime.HasValue &&
         fsm.unhealthySince.GetOrElse(DateTime.MaxValue) < fsm.systemTime.UtcNow.Subtract(LogUserAnalyticsErrorOnUnhealthySince))
     {
         Routing.UserAnalyticsLogger.LogUnhealthyEndpoint(fsm.Endpoint.IotHubName, fsm.Endpoint.Name, failureKind);
     }
 }
 public SendFailureDetails(FailureKind failureKind, Exception rawException)
 {
     this.FailureKind  = failureKind;
     this.RawException = rawException;
 }
 public void LogUnhealthyEndpoint(string iotHubName, string endpointName, FailureKind failureKind)
 {
 }
 public void LogInvalidMessage(string iotHubName, IMessage message, FailureKind failureKind)
 {
 }
 public void LogDroppedMessage(string iotHubName, IMessage message, string endpointName, FailureKind failureKind)
 {
 }
Beispiel #7
0
 public InvalidDetails(T item, FailureKind failureKind)
 {
     this.Item        = item;
     this.FailureKind = failureKind;
 }