2

我在类路径上使用带有 micrometer-spring-legacy:1.1.4 和 micrometer-registry-cloudwatch:1.1.4 的 Spring Boot 1.5。根据文档,它应该自动获取此注册表:

在运行时类路径中依赖 micrometer-registry-{system} 就足以让 Spring Boot 配置注册表。

但是,当我在应用程序启动时查看已注册的 Spring bean 时,只有“simpleMeterRegistry”(我认为这是默认设置)。

为什么它不接CloudWatchMeterRegistry?如何排除故障?谢谢你!!!

从日志:

io.micrometer.spring.autoconfigure.CompositeMeterRegistryConfiguration 上的条件 CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition 不匹配,因为 NoneNestedConditions 1 匹配 1 不匹配;CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.SingleInjectableMeterRegistry @ConditionalOnSingleCandidate 上的 NestedCondition(类型:io.micrometer.core.instrument.MeterRegistry;SearchStrategy:all)从 bean 'simpleMeterRegistry' 中找到了一个主 bean;CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.NoMeterRegistryCondition @ConditionalOnMissingBean(类型:io.micrometer.core.instrument.MeterRegistry;SearchStrategy:all)上的 NestedCondition 找到了 bean 'simpleMeterRegistry'

io.micrometer.spring.autoconfigure.jdbc.DataSourcePoolMetricsAutoConfiguration 上的条件 DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans 由于 AllNestedConditions 2 匹配 0 不匹配;DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnMeterRegistryBean @ConditionalOnBean(类型:io.micrometer.core.instrument.MeterRegistry;SearchStrategy:all)上的 NestedCondition 找到 bean 'simpleMeterRegistry';DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnDataSourceBean @ConditionalOnBean (types: javax.sql.DataSource; SearchStrategy: all) 上的 NestedCondition 找到 bean 'dataSource'

过滤器“webMetricsFilter”配置成功

更新

我看到有CloudWatchMetricAutoConfiguration,我希望它会产生一个CloudWatchMetricWriterBean,但没有这样的 bean。它还应该创建一个AmazonCloudWatchAsyncbean,但它没有——我们拥有的唯一“亚马逊”bean 是amazonS3.

可能的原因

我发现每个受支持的系统都有带有,的micrometer-spring-legacy:1.1.4软件包- 但不是 CloudWatch。这些类使 *Registry 可以作为 Spring bean 使用,并且由于不支持 cloudwatch 注册表,因此它不能作为 Spring bean 使用。io.micrometer.spring.autoconfigure.export.<system><system>MetricsExportAutoConfiguration<system>Properties<system>PropertiesConfigAdapter

4

2 回答 2

1

所以问题是我缺少 CloudWatch 的 micrometer-spring 集成,由于它的依赖关系,它没有包含在 micrometer-spring-legacy 中。相反,它存在于 Spring Cloud AWS 存储库中,即库的包org.springframework.cloud.aws.autoconfigure.metricsspring-cloud-aws-autoconfigure

有关背景,请参见spring-projects/spring-boot#11276

但是 spring-cloud-aws-autoconfigure 2 需要 Boot 2.x,为 Boot 1.5 制作的最新版本是 1.2.3,它缺少 CloudWatch 指标集成。因此,唯一的选择是复制、粘贴、调整其CloudWatchMetricsExportAutoConfiguration.

于 2019-04-25T07:46:15.770 回答
0

我的问题是我使用micrometer-registry-cloudwatch2的是与我的 SpringBoot 不兼容的 . 所以我使用micrometer-registry-cloudwatch并且一切正常。

于 2021-05-05T08:27:59.807 回答