diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OpenTelemetryConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OpenTelemetryConfiguration.java index 370ef5766..cff3a1b1e 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OpenTelemetryConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/OpenTelemetryConfiguration.java @@ -8,6 +8,8 @@ package org.whispersystems.textsecuregcm.configuration; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; import com.fasterxml.jackson.annotation.JsonProperty; + +import io.micrometer.registry.otlp.HistogramFlavor; import io.micrometer.registry.otlp.OtlpConfig; import java.time.Duration; import java.util.Map; @@ -15,6 +17,8 @@ import java.util.Map; public record OpenTelemetryConfiguration( @JsonProperty boolean enabled, @JsonProperty Duration shutdownWaitDuration, + @JsonProperty int maxBucketCount, + @JsonProperty Map maxBucketsPerMeter, @JsonAnyGetter @JsonAnySetter Map otlpConfig ) implements OtlpConfig { @@ -23,6 +27,19 @@ public record OpenTelemetryConfiguration( return otlpConfig.get(key.split("\\.", 2)[1]); } + @Override + public Map maxBucketsPerMeter() { + if (maxBucketsPerMeter == null) { + return Map.of(); + } + return maxBucketsPerMeter; + } + + @Override + public HistogramFlavor histogramFlavor() { + return HistogramFlavor.BASE2_EXPONENTIAL_BUCKET_HISTOGRAM; + } + public Duration shutdownWaitDuration() { if (shutdownWaitDuration == null) { return step().plus(step().dividedBy(2)); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java index 4cb8fa521..d6b0c9756 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/MetricsUtil.java @@ -65,7 +65,7 @@ public class MetricsUtil { Duration shutdownWaitDuration = Duration.ZERO; - if (config.getDatadogConfiguration() != null && config.getDatadogConfiguration().enabled()) { + if (config.getDatadogConfiguration().enabled()) { final StatsdMeterRegistry dogstatsdMeterRegistry = new StatsdMeterRegistry( config.getDatadogConfiguration(), io.micrometer.core.instrument.Clock.SYSTEM); @@ -81,7 +81,7 @@ public class MetricsUtil { shutdownWaitDuration = config.getDatadogConfiguration().getShutdownWaitDuration(); } - if (config.getOpenTelemetryConfiguration() != null && config.getOpenTelemetryConfiguration().enabled()) { + if (config.getOpenTelemetryConfiguration().enabled()) { final OtlpMeterRegistry otlpMeterRegistry = new OtlpMeterRegistry( config.getOpenTelemetryConfiguration(), io.micrometer.core.instrument.Clock.SYSTEM);