From 389a220b0b1758319ae935767875654c24f11512 Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Wed, 29 May 2024 22:55:50 +0900 Subject: [PATCH] Allow custom ThreadFactory for OtlpMeterRegistry --- .../registry/otlp/OtlpMeterRegistry.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/OtlpMeterRegistry.java b/implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/OtlpMeterRegistry.java index 1c0a26fbe4..e2fc8d9a9f 100644 --- a/implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/OtlpMeterRegistry.java +++ b/implementations/micrometer-registry-otlp/src/main/java/io/micrometer/registry/otlp/OtlpMeterRegistry.java @@ -101,12 +101,23 @@ public OtlpMeterRegistry() { } public OtlpMeterRegistry(OtlpConfig config, Clock clock) { - this(config, clock, new HttpUrlConnectionSender()); + this(config, clock, DEFAULT_THREAD_FACTORY); + } + + /** + * Create an {@code OtlpMeterRegistry} instance. + * @param config config + * @param clock clock + * @param threadFactory thread factory + * @since 1.14.0 + */ + public OtlpMeterRegistry(OtlpConfig config, Clock clock, ThreadFactory threadFactory) { + this(config, clock, threadFactory, new HttpUrlConnectionSender()); } // not public until we decide what we want to expose in public API // HttpSender may not be a good idea if we will support a non-HTTP transport - private OtlpMeterRegistry(OtlpConfig config, Clock clock, HttpSender httpSender) { + private OtlpMeterRegistry(OtlpConfig config, Clock clock, ThreadFactory threadFactory, HttpSender httpSender) { super(config, clock); this.config = config; this.baseTimeUnit = config.baseTimeUnit(); @@ -114,7 +125,7 @@ private OtlpMeterRegistry(OtlpConfig config, Clock clock, HttpSender httpSender) this.resource = Resource.newBuilder().addAllAttributes(getResourceAttributes()).build(); this.aggregationTemporality = config.aggregationTemporality(); config().namingConvention(NamingConvention.dot); - start(DEFAULT_THREAD_FACTORY); + start(threadFactory); } @Override