Я использую Spring Boot 1.5 с micrometer-spring-legacy: 1.1.4 и micrometer-registry-cloudwatch: 1.1.4 в пути к классам. Согласно docs, он должен автоматически получить этот реестр:
Наличие зависимости от micrometer-registry- {system} в пути к классам среды выполнения достаточно для Spring Boot для настройки реестра.
Однако, когда я смотрю на зарегистрированные компоненты Spring при запуске приложения, есть только «simpleMeterRegistry» (который, как я предполагаю, используется по умолчанию).
Почему не подхватывает CloudWatchMeterRegistry
? Как устранить неполадки? Спасибо!!!
Из журнала:
Условие CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition в io.micrometer.spring.autoconfigure.CompositeMeterRegistryConfiguration не соответствует из-за NoneNestedConditions 1 соответствует 1 не соответствует; NestedCondition в CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.SingleInjectableMeterRegistry @ConditionalOnSingleCandidate (типы: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) обнаружил первичный bean-компонент из beansReg; NestedCondition в CompositeMeterRegistryConfiguration.MultipleNonPrimaryMeterRegistriesCondition.NoMeterRegistryCondition @ConditionalOnMissingBean (типы: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) найден bean 'simpleMeterRegistry
Условие DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans на io.micrometer.spring.autoconfigure.jdbc.DataSourcePoolMetricsAutoConfiguration сопоставлено из-за AllNestedConditions 2 сопоставлено 0 не соответствует; NestedCondition в DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnMeterRegistryBean @ConditionalOnBean (типы: io.micrometer.core.instrument.MeterRegistry; SearchStrategy: all) найден bean-компонент 'simpleMeterRegistry'; NestedCondition в DataSourcePoolMetricsAutoConfiguration.DataSourcePoolMetricsConditionalOnBeans.ConditionalOnDataSourceBean @ConditionalOnBean (типы: javax.sql.DataSource; SearchStrategy: all) найден bean-компонент dataSource
Фильтр "webMetricsFilter" настроен успешно
Обновлять
Я вижу, что есть CloudWatchMetricAutoConfiguration
, и я ожидал бы, что он создаст CloudWatchMetricWriter
Bean, но такого bean-объекта нет. Он также должен создать AmazonCloudWatchAsync
bean, но это не так - единственный bean-компонент "amazon", который у нас есть, это amazonS3
.
Вероятная причина
Я обнаружил, что micrometer-spring-legacy:1.1.4
имеет пакет io.micrometer.spring.autoconfigure.export.<system>
с <system>MetricsExportAutoConfiguration
, <system>Properties
, <system>PropertiesConfigAdapter
для каждой поддерживаемой системы, но не CloudWatch. Эти классы делают реестр * доступным как bean-компонент Spring, и, поскольку нет поддержки реестра cloudwatch, он недоступен как bean-компонент Spring.