diff --git a/spring-cloud-vault-config/pom.xml b/spring-cloud-vault-config/pom.xml
index 88330dba..c90a9166 100644
--- a/spring-cloud-vault-config/pom.xml
+++ b/spring-cloud-vault-config/pom.xml
@@ -59,6 +59,14 @@
true
+
+
+
+ io.micrometer
+ micrometer-tracing
+ true
+
+
org.apache.httpcomponents.client5
diff --git a/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultObservationAutoConfiguration.java b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultObservationAutoConfiguration.java
new file mode 100644
index 00000000..13875046
--- /dev/null
+++ b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultObservationAutoConfiguration.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2016-2022 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.vault.config;
+
+import io.micrometer.observation.Observation;
+import io.micrometer.observation.ObservationRegistry;
+
+import org.springframework.boot.actuate.metrics.web.client.ObservationRestTemplateCustomizer;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.client.observation.DefaultClientRequestObservationConvention;
+import org.springframework.vault.client.RestTemplateCustomizer;
+
+/**
+ * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
+ * Auto-configuration} for Observability.
+ *
+ * @author Mark Paluch
+ * @since 3.0
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnClass(Observation.class)
+@AutoConfigureBefore(VaultAutoConfiguration.class)
+public class VaultObservationAutoConfiguration {
+
+ @Bean
+ @ConditionalOnSingleCandidate(ObservationRegistry.class)
+ public RestTemplateCustomizer observationVaultRestTemplateCustomizer(ObservationRegistry observationRegistry) {
+ return restTemplate -> new ObservationRestTemplateCustomizer(observationRegistry,
+ new DefaultClientRequestObservationConvention()).customize(restTemplate);
+ }
+
+}
diff --git a/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultReactiveObservationAutoConfiguration.java b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultReactiveObservationAutoConfiguration.java
new file mode 100644
index 00000000..5cae12da
--- /dev/null
+++ b/spring-cloud-vault-config/src/main/java/org/springframework/cloud/vault/config/VaultReactiveObservationAutoConfiguration.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2016-2022 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.cloud.vault.config;
+
+import io.micrometer.observation.Observation;
+import io.micrometer.observation.ObservationRegistry;
+import reactor.core.publisher.Flux;
+
+import org.springframework.boot.actuate.metrics.web.reactive.client.ObservationWebClientCustomizer;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.vault.client.WebClientCustomizer;
+import org.springframework.web.reactive.function.client.DefaultClientRequestObservationConvention;
+import org.springframework.web.reactive.function.client.WebClient;
+
+/**
+ * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration
+ * Auto-configuration} for Reactive Observability.
+ *
+ * @author Mark Paluch
+ * @since 3.0
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnClass({ Observation.class, WebClient.class, Flux.class })
+@AutoConfigureBefore(VaultReactiveAutoConfiguration.class)
+public class VaultReactiveObservationAutoConfiguration {
+
+ @Bean
+ @ConditionalOnSingleCandidate(ObservationRegistry.class)
+ public WebClientCustomizer observationVaultWebClientCustomizer(ObservationRegistry observationRegistry) {
+ return webClientBuilder -> new ObservationWebClientCustomizer(observationRegistry,
+ new DefaultClientRequestObservationConvention()).customize(webClientBuilder);
+ }
+
+}
diff --git a/spring-cloud-vault-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-cloud-vault-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
index d723c452..3ad8e268 100644
--- a/spring-cloud-vault-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
+++ b/spring-cloud-vault-config/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -1,3 +1,5 @@
+org.springframework.cloud.vault.config.VaultObservationAutoConfiguration
+org.springframework.cloud.vault.config.VaultReactiveObservationAutoConfiguration
org.springframework.cloud.vault.config.VaultReactiveAutoConfiguration
org.springframework.cloud.vault.config.VaultAutoConfiguration
-org.springframework.cloud.vault.config.VaultHealthIndicatorAutoConfiguration
\ No newline at end of file
+org.springframework.cloud.vault.config.VaultHealthIndicatorAutoConfiguration