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

com.ringcentral.platform.metrics.histogram.AbstractHistogram Maven / Gradle / Ivy

package com.ringcentral.platform.metrics.histogram;

import com.ringcentral.platform.metrics.*;
import com.ringcentral.platform.metrics.labels.LabelValues;
import com.ringcentral.platform.metrics.histogram.configs.*;
import com.ringcentral.platform.metrics.names.MetricName;
import com.ringcentral.platform.metrics.utils.TimeMsProvider;

import java.util.Set;
import java.util.concurrent.ScheduledExecutorService;

import static com.ringcentral.platform.metrics.counter.Counter.COUNT;

public abstract class AbstractHistogram extends AbstractMeter<
    MI,
    HistogramInstanceConfig,
    HistogramSliceConfig,
    HistogramConfig> implements Histogram {

    public static final Set DEFAULT_HISTOGRAM_MEASURABLES = Set.of(
        COUNT,
        MIN,
        MAX,
        MEAN,
        PERCENTILE_50,
        PERCENTILE_90,
        PERCENTILE_99);

    protected AbstractHistogram(
        MetricName name,
        HistogramConfig config,
        MeasurableValueProvidersProvider measurableValueProvidersProvider,
        MeterImplMaker meterImplMaker,
        MeterImplUpdater meterImplUpdater,
        InstanceMaker instanceMaker,
        TimeMsProvider timeMsProvider,
        ScheduledExecutorService executor,
        MetricRegistry registry) {

        super(
            name,
            config,
            measurableValueProvidersProvider,
            meterImplMaker,
            meterImplUpdater,
            instanceMaker,
            timeMsProvider,
            executor,
            registry);
    }

    @Override
    public void update(long value, LabelValues labelValues) {
        super.update(value, labelValues);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy