All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.riptide.spring.MetricsPluginFactory Maven / Gradle / Ivy

package org.zalando.riptide.spring;

import com.google.common.collect.ImmutableList;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Tag;
import org.zalando.riptide.Plugin;
import org.zalando.riptide.failsafe.CircuitBreakerListener;
import org.zalando.riptide.failsafe.CompoundRetryListener;
import org.zalando.riptide.failsafe.LoggingRetryListener;
import org.zalando.riptide.failsafe.RetryListener;
import org.zalando.riptide.failsafe.metrics.MetricsCircuitBreakerListener;
import org.zalando.riptide.failsafe.metrics.MetricsRetryListener;
import org.zalando.riptide.metrics.MetricsPlugin;

final class MetricsPluginFactory {

    private MetricsPluginFactory() {

    }

    public static Plugin createMetricsPlugin(final MeterRegistry registry,
            final ImmutableList tags) {
        return new MetricsPlugin(registry).withDefaultTags(tags);
    }

    public static CircuitBreakerListener createCircuitBreakerListener(final MeterRegistry registry,
            final ImmutableList defaultTags) {
        return new MetricsCircuitBreakerListener(registry).withDefaultTags(defaultTags);
    }

    public static CircuitBreakerListener getDefaultCircuitBreakerListener() {
        return CircuitBreakerListener.DEFAULT;
    }

    public static RetryListener createRetryListener(final MeterRegistry registry,
            final ImmutableList defaultTags) {
        return new CompoundRetryListener(
                new MetricsRetryListener(registry).withDefaultTags(defaultTags),
                new LoggingRetryListener()
        );
    }

    public static RetryListener getDefaultRetryListener() {
        return new LoggingRetryListener();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy