static FaultToleranceMetrics create()

in safeguard-impl/src/main/java/org/apache/safeguard/impl/metrics/FaultToleranceMetrics.java [50:66]


    static FaultToleranceMetrics create(final GeronimoFaultToleranceConfig config) {
        if ("false".equalsIgnoreCase(config.read("MP_Fault_Tolerance_Metrics_Enabled"))) {
            return new NoMetrics();
        }
        try {
            final Optional<FaultToleranceMetrics> iterator = StreamSupport.stream(
                    ServiceLoader.load(FaultToleranceMetrics.class).spliterator(), false)
                    .min(comparing(it -> ofNullable(it.getClass().getAnnotation(Priority.class)).map(Priority::value).orElse(0)));
            if (iterator.isPresent()) {
                return iterator.orElseThrow(IllegalStateException::new);
            }
            return new MicroprofileMetricsImpl(CDI.current().select(org.eclipse.microprofile.metrics.MetricRegistry.class).get());
        } catch (final Exception e) {
            // no-op
        }
        return new NoMetrics();
    }