Configure duration metrics export as histograms to dogfood in preparation of SDK 1.5.0 (#3597)
This commit is contained in:
parent
04c070ccc1
commit
ac8c1e1543
|
@ -13,8 +13,15 @@ import io.opentelemetry.javaagent.extension.AgentListener;
|
||||||
import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
|
import io.opentelemetry.javaagent.instrumentation.api.OpenTelemetrySdkAccess;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
|
import io.opentelemetry.sdk.autoconfigure.OpenTelemetrySdkAutoConfiguration;
|
||||||
|
import io.opentelemetry.sdk.autoconfigure.spi.SdkMeterProviderConfigurer;
|
||||||
import io.opentelemetry.sdk.common.CompletableResultCode;
|
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.export.IntervalMetricReader;
|
||||||
|
import io.opentelemetry.sdk.metrics.view.InstrumentSelector;
|
||||||
|
import io.opentelemetry.sdk.metrics.view.View;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.slf4j.Logger;
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue