@Override public void accept(Histogram.Builder builder) { if (metrics == MetricsType.EXPONENTIAL) { builder.exponentialBuckets(exponentialStart, exponentialFactor, exponentialCount); } else if (metrics == MetricsType.LINEAR) { builder.linearBuckets(linearStart, linearWidth, linearCount); } else if (metrics == MetricsType.DISTINCT) { builder.buckets(distinctBuckets); } else if (metrics == MetricsType.DEFAULT) { // nothing to do } else { throw new IllegalStateException("unknown enum state " + metrics); } } }).register(registry);
public PrometheusHistogram(Histogram.Builder builder, HistogramConfiguration configuration) { builder.name(configuration.getName()) .help(configuration.getDescription()) .labelNames(configuration.getLabels()); final List<Double> configurationBuckets = configuration.getBuckets(); if(configurationBuckets != null) { configureBucketsForBuilder(builder, configurationBuckets); } final ExponentialBucketConfiguration exponentialBucketConfiguration = configuration.getExponentialBuckets(); if(exponentialBucketConfiguration != null) { builder.exponentialBuckets( exponentialBucketConfiguration.getStart(), exponentialBucketConfiguration.getFactor(), exponentialBucketConfiguration.getCount() ); } final LinearBucketConfiguration linearBucketConfiguration = configuration.getLinearBuckets(); if(linearBucketConfiguration != null) { builder.linearBuckets( linearBucketConfiguration.getStart(), linearBucketConfiguration.getWidth(), linearBucketConfiguration.getCount() ); } this.histogram = builder .create(); }