Настройка приложения SpringBoot 2 для Micrometer для AWS cloudwatch

У меня есть приложение springboot 2, и я хочу отображать метрики в AWS Cloudwatch.

Я включил зависимость микрометра от облачных часов в pom.

Здесь задокументирована настройка для различных метрических систем, но не для облачных часов.

Какие еще конфигурации мне нужно сделать для cloudwatch?


person Mandroid    schedule 24.05.2018    source источник


Ответы (1)


Прежде всего, вам, возможно, придется добавить некоторые дополнительные зависимости. Мне понадобилось следующее:

  • org.springframework.boot - пружина-пыльник-пускатель-привод
  • org.springframework.cloud - весеннее облако-стартер-aws
  • микрометр - микрометр-сердечник
  • io.micrometer - микрометр-реестр-cloudwatch

Boot не смог управлять версиями для этих зависимостей, за исключением привода в моем случае, поэтому вам, возможно, придется подобрать для вас правильные версии.

Кроме того, необходимо установить некоторые свойства приложения:

# disable unwanted features to prevent autoconfigure which will produce errors and abort of application startup eventually
# alternatively you can try to configure those features correctly if you intend to use them
cloud.aws.stack.auto=false
# enable micrometer for cloudwatch (only where there is actually access to it)
management.metrics.export.cloudwatch.enabled=true
# set the namespace that will contain the metrics for this application
management.metrics.export.cloudwatch.namespace=test
# set max batch size to the actual maximum (if not a bug in certain versions of micrometer for cloudwatch will send
# batches that are too big) 
management.metrics.export.cloudwatch.batchSize=20

Следующим шагом будет AWS. Роль, связанная с вашим экземпляром EC2 (или чем-то еще, что вы используете), должна иметь разрешение CloudWatch:PutMetricData.

Использование этой конфигурации должно включить CloudWatch-Monitoring для вашего Spring-Boot-Application.

Один из источников, с которыми я столкнулся, заявил, что вы должны использовать:

cloud.aws.credentials.instanceProfile=false

Это предотвратит автоматическое получение Spring Boot учетных данных, необходимых для передачи метрик в CloudWatch. Вы также можете предоставить собственные учетные данные другим способом, но я этого не пробовал.

person Fencer    schedule 23.10.2019
comment
Это не работает для меня, я предоставил свои учетные данные aws, используя cloud.aws.credentials.accessKey: cloud.aws.credentials.secretKey: cloud.aws.region.static: - person emilpmp; 25.10.2019
comment
Ну, я только пробовал конфигурацию с помощью instanceProfile. Существует множество способов предоставить свои собственные учетные данные, но это выходит далеко за рамки этого SO-вопроса и заслуживает отдельного рассмотрения. - person Fencer; 27.10.2019
comment
Я пробовал разные решения и, наконец, работал у меня. Теперь в aws cloudwatch отображаются только показатели моего привода, а не специальные показатели, которые я создал с помощью микрометра. (счетчики, датчики). Вы что-нибудь об этом знаете? Спасибо. - person emilpmp; 28.10.2019
comment
Извини нет. Сам я только начал с этой темы и не создавал собственных метрик. Но я вернусь к вам, если доберусь до этого. - person Fencer; 29.10.2019