diff --git a/micrometer-observation/src/main/java/io/micrometer/observation/Observation.java b/micrometer-observation/src/main/java/io/micrometer/observation/Observation.java index d3801305d3..2dc86c1802 100644 --- a/micrometer-observation/src/main/java/io/micrometer/observation/Observation.java +++ b/micrometer-observation/src/main/java/io/micrometer/observation/Observation.java @@ -20,11 +20,14 @@ import io.micrometer.common.lang.NonNull; import io.micrometer.common.lang.Nullable; import io.micrometer.common.util.internal.logging.InternalLoggerFactory; +import io.micrometer.context.ContextExecutorService; +import io.micrometer.context.ContextSnapshotFactory; import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.Callable; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; import java.util.function.Function; import java.util.function.Supplier; import java.util.stream.Collectors; @@ -612,6 +615,11 @@ default CheckedCallable wrapChecked(CheckedCallab return () -> observeChecked(checkedCallable); } + default ExecutorService wrap(ExecutorService executorService) { + return ContextExecutorService.wrap(executorService, + () -> ContextSnapshotFactory.builder().build().captureAll()); + } + /** * Observes the passed {@link Function} which provides access to the {@link Context}. *