Configure duration metrics export as histograms to dogfood in preparation of SDK 1.5.0 (#3597)

This commit is contained in:
Anuraag Agrawal 2021-07-16 22:54:15 +09:00 committed by GitHub
parent 04c070ccc1
commit ac8c1e1543
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 0 deletions

View File

@ -13,8 +13,15 @@ import io.opentelemetry.javaagent.extension.AgentListener;
import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
import io.opentelemetry.sdk.autoconfigure.spi.SdkMeterProviderConfigurer;
import io.opentelemetry.sdk.common.CompletableResultCode;
import io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder;
import io.opentelemetry.sdk.metrics.aggregator.AggregatorFactory;
import io.opentelemetry.sdk.metrics.common.InstrumentType;
import io.opentelemetry.sdk.metrics.data.AggregationTemporality;
import io.opentelemetry.sdk.metrics.export.IntervalMetricReader;
import io.opentelemetry.sdk.metrics.view.InstrumentSelector;
import io.opentelemetry.sdk.metrics.view.View;
import java.util.Arrays;
import java.util.Map;
import org.slf4j.Logger;
@ -84,4 +91,27 @@ public class OpenTelemetryInstaller implements AgentListener {
}
});
}
// Configure histogram metrics similarly to how the SDK will default in 1.5.0 for early feedback.
@AutoService(SdkMeterProviderConfigurer.class)
public static final class OpenTelemetryMetricsConfigurer implements SdkMeterProviderConfigurer {
@Override
public void configure(SdkMeterProviderBuilder sdkMeterProviderBuilder) {
sdkMeterProviderBuilder.registerView(
InstrumentSelector.builder()
.setInstrumentNameRegex(".*duration")
.setInstrumentType(InstrumentType.VALUE_RECORDER)
.build(),
// Histogram buckets the same as the metrics prototype/prometheus.
View.builder()
.setAggregatorFactory(
AggregatorFactory.histogram(
Arrays.asList(
5d, 10d, 25d, 50d, 75d, 100d, 250d, 500d, 750d, 1_000d, 2_500d, 5_000d,
7_500d, 10_000d),
AggregationTemporality.CUMULATIVE))
.build());
}
}
}