when(metrics.getFailureRate()).thenReturn(0.2f); when(metrics.getMaxNumberOfBufferedCalls()).thenReturn(100); when(metrics.getNumberOfBufferedCalls()).thenReturn(100);
when(metrics.getFailureRate()).thenReturn(0.2f); when(metrics.getMaxNumberOfBufferedCalls()).thenReturn(100); when(metrics.getNumberOfBufferedCalls()).thenReturn(100);
private void assertCircuitBreakerMetricsEqualTo(Float expectedFailureRate, Integer expectedSuccessCalls, Integer expectedBufferedCalls, Integer expectedMaxBufferedCalls, Integer expectedFailedCalls, Long expectedNotPermittedCalls) { final CircuitBreaker.Metrics metrics = circuitBreaker.getMetrics(); if (expectedFailureRate != null) { assertThat(metrics.getFailureRate()).isEqualTo(expectedFailureRate); } if (expectedSuccessCalls != null) { assertThat(metrics.getNumberOfSuccessfulCalls()).isEqualTo(expectedSuccessCalls); } if (expectedBufferedCalls != null) { assertThat(metrics.getNumberOfBufferedCalls()).isEqualTo(expectedBufferedCalls); } if (expectedMaxBufferedCalls != null) { assertThat(metrics.getMaxNumberOfBufferedCalls()).isEqualTo(expectedMaxBufferedCalls); } if (expectedFailedCalls != null) { assertThat(metrics.getNumberOfFailedCalls()).isEqualTo(expectedFailedCalls); } if (expectedNotPermittedCalls != null) { assertThat(metrics.getNumberOfNotPermittedCalls()).isEqualTo(expectedNotPermittedCalls); } }
assertThat(circuitBreaker.getMetrics().getFailureRate()).isEqualTo(60.0f); assertCircuitBreakerMetricsEqualTo(60.0f, null, 5, null, 3, 0L); assertThat(circuitBreaker.getMetrics().getFailureRate()).isGreaterThan(50f);
this.assertAllGroupACircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getNumberOfBufferedCalls(), 5); this.assertAllGroupACircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getNumberOfFailedCalls(), 3); this.assertAllGroupACircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getFailureRate(), 60.0f); this.assertAllGroupAMetricsEqualTo(60.0f, null, 5, null, 3, 0L); this.assertAllGroupBCircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getNumberOfBufferedCalls(), 5); this.assertAllGroupBCircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getNumberOfFailedCalls(), 3); this.assertAllGroupBCircuitBreakers((CircuitBreaker cb) -> cb.getMetrics().getFailureRate(), 60.0f); this.assertAllGroupBMetricsEqualTo(60.0f, null, 5, null, 3, 0L);
private void assertCircuitBreakerMetricsEqualTo(List<CircuitBreaker> circuitBreakers, Float expectedFailureRate, Integer expectedSuccessCalls, Integer expectedBufferedCalls, Integer expectedMaxBufferedCalls, Integer expectedFailedCalls, Long expectedNotPermittedCalls) { circuitBreakers.forEach(circuitBreaker -> { final CircuitBreaker.Metrics metrics = circuitBreaker.getMetrics(); if (expectedFailureRate != null) { assertThat(metrics.getFailureRate()).isEqualTo(expectedFailureRate); } if (expectedSuccessCalls != null) { assertThat(metrics.getNumberOfSuccessfulCalls()).isEqualTo(expectedSuccessCalls); } if (expectedBufferedCalls != null) { assertThat(metrics.getNumberOfBufferedCalls()).isEqualTo(expectedBufferedCalls); } if (expectedMaxBufferedCalls != null) { assertThat(metrics.getMaxNumberOfBufferedCalls()).isEqualTo(expectedMaxBufferedCalls); } if (expectedFailedCalls != null) { assertThat(metrics.getNumberOfFailedCalls()).isEqualTo(expectedFailedCalls); } if (expectedNotPermittedCalls != null) { assertThat(metrics.getNumberOfNotPermittedCalls()).isEqualTo(expectedNotPermittedCalls); } }); }
private Health.Builder addDetails(Health.Builder builder, CircuitBreaker circuitBreaker) { CircuitBreaker.Metrics metrics = circuitBreaker.getMetrics(); CircuitBreakerConfig config = circuitBreaker.getCircuitBreakerConfig(); builder.withDetail(FAILURE_RATE, metrics.getFailureRate() + "%") .withDetail(FAILURE_RATE_THRESHOLD, config.getFailureRateThreshold() + "%") .withDetail(MAX_BUFFERED_CALLS, metrics.getMaxNumberOfBufferedCalls()) .withDetail(BUFFERED_CALLS, metrics.getNumberOfBufferedCalls()) .withDetail(FAILED_CALLS, metrics.getNumberOfFailedCalls()) .withDetail(NOT_PERMITTED, metrics.getNumberOfNotPermittedCalls()); return builder; } }
private Health.Builder addDetails(Health.Builder builder, CircuitBreaker circuitBreaker) { CircuitBreaker.Metrics metrics = circuitBreaker.getMetrics(); CircuitBreakerConfig config = circuitBreaker.getCircuitBreakerConfig(); builder.withDetail(FAILURE_RATE, metrics.getFailureRate() + "%") .withDetail(FAILURE_RATE_THRESHOLD, config.getFailureRateThreshold() + "%") .withDetail(MAX_BUFFERED_CALLS, metrics.getMaxNumberOfBufferedCalls()) .withDetail(BUFFERED_CALLS, metrics.getNumberOfBufferedCalls()) .withDetail(FAILED_CALLS, metrics.getNumberOfFailedCalls()) .withDetail(NOT_PERMITTED, metrics.getNumberOfNotPermittedCalls()); return builder; } }