我在类路径上使用带有micrometer-spring-legacy:1.1.4和micrometer-registry-cloudwatch:1.1.4的Spring Boot 1.5。根据{{3}},它应该自动选择此注册表:
在运行时类路径中具有对micrometer-registry- {system}的依赖足以使Spring Boot配置注册表。
但是,当我在应用启动时查看已注册的Spring Bean时,只有“ simpleMeterRegistry”(我认为这是默认值)。
为什么不接CloudWatchMeterRegistry
?如何排除故障?谢谢!!!
从日志中:
io.micrometer.spring.autoconfigure.CompositeMeterRegistryConfiguration上的条件CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition不匹配,原因是NoneNestedConditions 1匹配1不匹配; CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.SingleInjectableMeterRegistry @ConditionalOnSingleCandidate(类型:io.micrometer.core.instrument.MeterRegistry; SearchStrategy:all)上的NestedCondition从bean'simpleMeterRegistry'中找到了一个主bean。 CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.NoMeterRegistryCondition @ConditionalOnMissingBean(类型:io.micrometer.core.instrument.MeterRegistry; SearchStrategy:全部)上的NestedCondition发现了bean'simpleMeterRegistry'
由于AllNestedConditions 2匹配0而导致io.micrometer.spring.autoconfigure.jdbc.DataSourcePoolMetricsAutoConfiguration匹配的条件DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans没有匹配;在DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnMeterRegistryBean @ConditionalOnBean(类型:io.micrometer.core.instrument.MeterRegistry; SearchStrategy:all)上的NestedCondition找到了bean'simpleMeterRegistry';找到DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnDataSourceBean @ConditionalOnBean上的NestedCondition(类型:javax.sql.DataSource; SearchStrategy:全部)发现bean'dataSource'
过滤器“ webMetricsFilter”已成功配置
我看到有CloudWatchMetricAutoConfiguration
,我希望它会产生一个CloudWatchMetricWriter
Bean,但是没有这样的Bean。它也应该创建一个AmazonCloudWatchAsync
bean,但它不是-我们拥有的唯一“ amazon ” bean是amazonS3
。
我发现micrometer-spring-legacy:1.1.4
的软件包io.micrometer.spring.autoconfigure.export.<system>
包含<system>MetricsExportAutoConfiguration
,<system>Properties
,<system>PropertiesConfigAdapter
的软件包,适用于每个受支持的系统-但不是CloudWatch。这些类使* Registry可以作为Spring Bean使用,并且由于不支持cloudwatch注册表,因此不能作为Spring Bean使用。
答案 0 :(得分:0)
所以问题是我缺乏CloudWatch的微米弹簧组合,由于其依赖性,它未包含在微米弹簧传统中。相反,它位于Spring Cloud AWS存储库中,即in the package org.springframework.cloud.aws.autoconfigure.metrics
库的spring-cloud-aws-autoconfigure
中。
有关背景,请参见spring-projects/spring-boot#11276。
但是spring-cloud-aws-autoconfigure 2希望使用Boot 2.x,而Boot 1.5的最新版本是1.2.3,它缺少CloudWatch指标集成。因此,唯一的选择是复制,粘贴和调整其CloudWatchMetricsExportAutoConfiguration
。
答案 1 :(得分:0)
我的问题是我使用了 micrometer-registry-cloudwatch2
,它与我的 SpringBoot 不兼容。所以我使用了 micrometer-registry-cloudwatch
并且一切正常。