![JAR search and dependency download from the Maven repository](/logo.png)
com.infomaximum.platform.prometheus.metric.HistogramMetric Maven / Gradle / Ivy
package com.infomaximum.platform.prometheus.metric;
import io.prometheus.metrics.core.metrics.Histogram;
import io.prometheus.metrics.model.registry.PrometheusRegistry;
public class HistogramMetric implements PrometheusMetric {
private final Histogram histogram;
HistogramMetric(Histogram histogram) {
this.histogram = histogram;
}
@Override
public void register() {
PrometheusRegistry.defaultRegistry.register(histogram);
}
@Override
public String getName() {
return histogram.getPrometheusName();
}
public void observe(double amount) {
histogram.observe(amount);
}
public void observeWithLabelValues(double amount, String... labelValues) {
histogram.labelValues(labelValues).observe(amount);
}
public static Builder builder() {
return new Builder();
}
public static class Builder implements PrometheusMetric.Builder {
private final Histogram.Builder builder;
Builder() {
builder = Histogram.builder();
}
@Override
public PrometheusMetric.Builder withName(String name) {
builder.name(name);
return this;
}
@Override
public PrometheusMetric.Builder withHelp(String help) {
builder.help(help);
return this;
}
@Override
public PrometheusMetric.Builder withLabels(String... labelNames) {
builder.labelNames(labelNames);
return this;
}
@Override
public PrometheusMetric.Builder withUnit(Unit unit) {
builder.unit(unit.getUnit());
return this;
}
@Override
public HistogramMetric build() {
return new HistogramMetric(builder.build());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy