code: private void onAttemptComplete(Throwable t) {
          try {
              if (circuitBreaker != null) {
                  if (t instanceof CircuitBreakerOpenException) {
                      metricRecorder.incrementCircuitBreakerCallsCircuitOpenCount();
                  } else if (circuitBreaker.isFailure(null, t)) {
                      metricRecorder.incrementCircuitBreakerCallsFailureCount();
                  } else {
                      metricRecorder.incrementCircuitBreakerCallsSuccessCount();
                  }
              }
  
              if (t instanceof TimeoutException) {
                  metricRecorder.incrementTimeoutTrueCount();
              } else {
                  metricRecorder.incrementTimeoutFalseCount();
              }
          } catch (RuntimeException e) {
              // Unchecked exceptions thrown here can be swallowed by Failsafe
              // This catch ensures we at least get an FFDC
              throw e;
          }
      }
docs: Called at the end of each retry attempt