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

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

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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
8
0
1 520
1

Ответы 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. Вы также можете предоставить собственные учетные данные другим способом, но я этого не пробовал.

Это не работает для меня, я предоставил свои учетные данные aws, используя cloud.aws.credentials.accessKey: cloud.aws.credentials.secretKey: cloud.aws.region.static:

emilpmp 25.10.2019 10:01

Ну, я только пробовал конфигурацию с помощью instanceProfile. Существует множество способов предоставить свои собственные учетные данные, но это выходит далеко за рамки этого SO-вопроса и заслуживает отдельного рассмотрения.

Fencer 27.10.2019 17:34

Я пробовал разные решения и, наконец, работал у меня. Теперь в aws cloudwatch отображаются только показатели моего привода, а не специальные показатели, которые я создал с помощью микрометра. (счетчики, датчики). Вы что-нибудь об этом знаете? Спасибо.

emilpmp 28.10.2019 06:29

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

Fencer 29.10.2019 08:31

Другие вопросы по теме