static CircuitBreakerListener metricCollecting(MeterRegistry registry, String name) {
        return new MetricCollectingCircuitBreakerListener(registry, name);
    }
Returns a new {@link CircuitBreakerListener} that collects metric with the specified
{@link MeterRegistry} and {@link Meter} name. The returned listener will generate the following metrics:
<table>
<caption>metrics that will be generated by this class</caption>
<tr>
  <th>metric name</th>
  <th>description</th>
</tr>
<tr>
  <td>{@code <name>.requests{name="<circuit breaker name>",result="success"}}</td>
  <td>The number of successful requests in the counter time window.</td>
</tr>
<tr>
  <td>{@code <name>.requests{name="<circuit breaker name>",result="failure"}}</td>
  <td>The number of failed requests in the counter time window.</td>
</tr>
<tr>
  <td>{@code <name>.transitions{name="<circuit breaker name>",state="CLOSED"}}</td>
  <td>The number of circuit breaker state transitions to {@link CircuitState#CLOSED}.</td>
</tr>
<tr>
  <td>{@code <name>.transitions{name="<circuit breaker name>",state="OPEN"}}</td>
  <td>The number of circuit breaker state transitions to {@link CircuitState#OPEN}.</td>
</tr>
<tr>
  <td>{@code <name>.transitions{name="<circuit breaker name>",state="HALF_OPEN"}}</td>
  <td>The number of circuit breaker state transitions to {@link CircuitState#HALF_OPEN}.</td>
</tr>
<tr>
  <td>{@code <name>.transitions{name="<circuit breaker name>",state="FORCED_OPEN"}}</td>
  <td>The number of circuit breaker state transitions to {@link CircuitState#FORCED_OPEN}.</td>
</tr>
<tr>
  <td>{@code <name>.rejected.requests{name="<circuit breaker name>"}}</td>
  <td>The number of requests rejected by the circuit breaker.</td>
</tr>
</table>
core/src/main/java/com/linecorp/armeria/client/circuitbreaker/CircuitBreakerListener.java