Skip to content

Commit 88af5ac

Browse files
krimszantonpperez
authored andcommitted
Create custom CloudWatchMetricPublishers for SecretsManager and ParameterStore
1 parent b732488 commit 88af5ac

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/AbstractAwsConfigDataLocationResolver.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,15 @@
1616
package io.awspring.cloud.autoconfigure.config;
1717

1818
import io.awspring.cloud.autoconfigure.AwsClientProperties;
19+
import io.awspring.cloud.autoconfigure.config.parameterstore.ParameterStorePropertySources;
1920
import io.awspring.cloud.autoconfigure.core.AwsProperties;
2021
import io.awspring.cloud.autoconfigure.core.CredentialsProperties;
2122
import io.awspring.cloud.autoconfigure.core.CredentialsProviderAutoConfiguration;
2223
import io.awspring.cloud.autoconfigure.core.RegionProperties;
2324
import io.awspring.cloud.autoconfigure.core.RegionProviderAutoConfiguration;
2425
import io.awspring.cloud.core.SpringCloudClientConfiguration;
26+
import org.apache.commons.logging.Log;
27+
import org.apache.commons.logging.LogFactory;
2528
import org.springframework.boot.BootstrapContext;
2629
import org.springframework.boot.BootstrapRegistry;
2730
import org.springframework.boot.ConfigurableBootstrapContext;
@@ -160,7 +163,7 @@ else if (awsProperties.getEndpoint() != null) {
160163
Optional<MetricPublisher> metricPublisher;
161164
try {
162165
Class.forName("software.amazon.awssdk.metrics.publishers.cloudwatch.CloudWatchMetricPublisher");
163-
metricPublisher = Optional.of(context.get(CloudWatchMetricPublisher.class));
166+
metricPublisher = Optional.of(context.get(MetricPublisher.class));
164167
}
165168
catch (IllegalStateException | ClassNotFoundException e) {
166169
metricPublisher = Optional.empty();
@@ -176,4 +179,15 @@ else if (awsProperties.getEndpoint() != null) {
176179
return builder;
177180
}
178181

182+
protected void createMetricPublisher(ConfigDataLocationResolverContext resolverContext) {
183+
try {
184+
Class.forName("software.amazon.awssdk.metrics.publishers.cloudwatch.CloudWatchMetricPublisher");
185+
}
186+
catch (IllegalStateException | ClassNotFoundException ignored) {
187+
// ignored, means that the optional dependency is not in the classpath
188+
return;
189+
}
190+
registerBean(resolverContext, MetricPublisher.class, CloudWatchMetricPublisher.builder().build());
191+
}
192+
179193
}

spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/parameterstore/ParameterStoreConfigDataLocationResolver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public List<ParameterStoreConfigDataResource> resolveProfileSpecific(
6565
registerBean(resolverContext, CredentialsProperties.class,
6666
loadCredentialsProperties(resolverContext.getBinder()));
6767
registerBean(resolverContext, RegionProperties.class, loadRegionProperties(resolverContext.getBinder()));
68-
68+
createMetricPublisher(resolverContext);
6969
registerAndPromoteBean(resolverContext, SsmClient.class, this::createSimpleSystemManagementClient);
7070

7171
ParameterStorePropertySources sources = new ParameterStorePropertySources();

spring-cloud-aws-autoconfigure/src/main/java/io/awspring/cloud/autoconfigure/config/secretsmanager/SecretsManagerConfigDataLocationResolver.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,8 @@ public List<SecretsManagerConfigDataResource> resolveProfileSpecific(
6969
registerBean(resolverContext, CredentialsProperties.class,
7070
loadCredentialsProperties(resolverContext.getBinder()));
7171
registerBean(resolverContext, RegionProperties.class, loadRegionProperties(resolverContext.getBinder()));
72-
72+
createMetricPublisher(resolverContext);
7373
registerAndPromoteBean(resolverContext, SecretsManagerClient.class, this::createAwsSecretsManagerClient);
74-
7574
SecretsManagerPropertySources propertySources = new SecretsManagerPropertySources();
7675

7776
List<String> contexts = getCustomContexts(location.getNonPrefixedValue(PREFIX));

0 commit comments

Comments
 (0)