Beispiel #1
0
 def record_negative_sla(self, conversation: Gp2gpConversation):
     self._logger.warning(
         f":Negative SLA duration for conversation: {conversation.conversation_id()}",
         extra={
             "event": "NEGATIVE_SLA_DETECTED",
             "conversation_id": conversation.conversation_id(),
             "final_acknowledgement_time": conversation.effective_final_acknowledgement_time(),
             "request_completed_time": conversation.effective_request_completed_time(),
         },
     )
Beispiel #2
0
def _calculate_sla(
    conversation: Gp2gpConversation, probe: TransferObservabilityProbe
) -> Optional[timedelta]:
    final_acknowledgement_time = conversation.effective_final_acknowledgement_time()
    request_completed_time = conversation.effective_request_completed_time()

    if final_acknowledgement_time is None:
        return None

    sla_duration = final_acknowledgement_time - request_completed_time

    if sla_duration.total_seconds() < 0:
        probe.record_negative_sla(conversation)

    return max(timedelta(0), sla_duration)