From 939e87657232e04d933f23cc483c5f7fff6b7494 Mon Sep 17 00:00:00 2001 From: Diego Berrueta Date: Sat, 18 Aug 2018 14:35:54 +1000 Subject: [PATCH] Additional factory methods These factory methods are identical to the ones already existing in metrics/CircuitBreakerMetrics.java. Their purpose is to allow Spring Boot applications to instantiate CircuitBreakerMetrics and have fine-grained control over which circuit breakers are bound to metrics, in particular in scenarios where the CircuitBreakerRegistry may not be completely populated by the time the CircuitBreakerMetrics class is instantiated. --- .../micrometer/CircuitBreakerMetrics.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/resilience4j-micrometer/src/main/java/io/github/resilience4j/micrometer/CircuitBreakerMetrics.java b/resilience4j-micrometer/src/main/java/io/github/resilience4j/micrometer/CircuitBreakerMetrics.java index db52e68201..8aa2baa191 100644 --- a/resilience4j-micrometer/src/main/java/io/github/resilience4j/micrometer/CircuitBreakerMetrics.java +++ b/resilience4j-micrometer/src/main/java/io/github/resilience4j/micrometer/CircuitBreakerMetrics.java @@ -49,6 +49,26 @@ public static CircuitBreakerMetrics ofCircuitBreakerRegistry(CircuitBreakerRegis return new CircuitBreakerMetrics(circuitBreakerRegistry.getAllCircuitBreakers()); } + /** + * Creates a new instance CircuitBreakerMetrics {@link CircuitBreakerMetrics} with + * an {@link Iterable} of circuit breakers as a source. + * + * @param circuitBreakers the circuit breakers + */ + public static CircuitBreakerMetrics ofIterable(Iterable circuitBreakers) { + return new CircuitBreakerMetrics(circuitBreakers); + } + + /** + * Creates a new instance CircuitBreakerMetrics {@link CircuitBreakerMetrics} with + * an {@link Iterable} of circuit breakers as a source. + * + * @param circuitBreakers the circuit breakers + */ + public static CircuitBreakerMetrics ofIterable(String prefix, Iterable circuitBreakers) { + return new CircuitBreakerMetrics(circuitBreakers, prefix); + } + @Override public void bindTo(MeterRegistry registry) { for (CircuitBreaker circuitBreaker : circuitBreakers) {