Springboot с метками Spring-cloud-aws и cloudwatch

Я хотел бы начать использовать показатели в своем приложении Springboot, а также опубликовать их в своем облачном хранилище Amazon.

Я знаю, что с помощью Springboot мы можем активировать пружинный привод, который предоставляет метрики памяти и публикует их в конечной точке / metrics.

Я наткнулся на Spring-cloud, у которого, кажется, есть некоторая библиотека для периодической публикации этих метрик в Cloudwatch, однако я понятия не имею, как их настроить? Существует абсолютно 0 примеров того, как его использовать.

Кто-нибудь может объяснить, каков шаг, чтобы метрика была отправлена ​​в cloudwatch?

4 ответа

Решение

Вы можете проверить мою статью здесь:

http://dkublik.github.io/springboot-metrics-with-servo-and-aws-cloudwatch

Я написал это после настройки этого в моем проекте.

Из заголовка:

"В статье объясняется, как отправлять метрики Spring Boot и Netflix Servo в AWS CloudWatch. Более того, в нем описываются механизмы, которые делают это. В нем также упоминаются проблемы, с которыми я сталкиваюсь, пытаясь сделать то же самое с Spring Boot и Spectator".

Я просмотрел несколько документов для этого. Что-то в них отсутствовало. Итак, я пишу все необходимое для настройки пользовательских метрик в Cloudwatch из вашего весеннего загрузочного приложения.

Установите эти свойства:

management.metrics.export.cloudwatch.namespace=my-application
management.metrics.export.cloudwatch.batchSize=20
management.metrics.export.cloudwatch.step=5s

Тщательно упомяните пространство имен. Это имя будет отражено в ваших метриках Cloudwatch. По умолчанию "шаг" для реестра cloudwatch составляет 1 минуту. Так что вы можете изменить это здесь.

Добавьте эту зависимость в свой pom, если она еще не присутствует:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-aws-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-aws-messaging</artifactId>
</dependency>

Это сделано. Теперь вы сможете видеть метрики в cloudwatch. Теперь, если вы хотите куда-то разместить пользовательские метрики, тогда используйте Autowire для MetricsRegistry и просто создайте те метрики, которые захотите.

Создадим счетчик для отправки смс например:

Counter smsCounter = Counter.builder(COUNT_METRICS)
            .tag("type", "sms")
            .description("The number of sms sent")
            .register(meterRegistry);

Теперь обновите счетчик, в котором выполняется действие, следующим образом:

smsCounter.increment();

Проверьте этот разговор:

@sachinlad Действительно, к сожалению, документация отсутствует, мы создадим обновленную версию в следующих выпусках. Включите metic экспорт в Cloud Formation, вам нужно настроить пространство имен с помощью свойства cloud.aws.cloudwatch.namespace

Посмотрите на интеграционный тест https://github.com/spring-cloud/spring-cloud-aws/blob/master/spring-cloud-aws-integration-test/src/test/java/org/springframework/cloud/aws/metric/MetricExporterTest.java который является интеграционным тестом и экспортирует метрики в формирование облака.

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

Если вам нужно готовое решение, которое не требует использования всей библиотеки облачных пружин, вы можете использовать: https://github.com/dipayan90/spring-actuator-cloudwatch

Вот установка для весенней загрузки 2.

Использование пружинной загрузки 2.0.3.

Добавьте эти зависимости:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-aws-actuator</artifactId>
    <version>2.0.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-aws</artifactId>
    <version>2.0.0.RELEASE</version>
</dependency>

application.yml:

# you might want to set this to true depending on your setup
cloud.aws.stack.auto: false
# set static region to avoid s3 error - adjust region accordingly
cloud.aws.region.static: eu-west-1

management:
  metrics.export.cloudwatch.namespace: my-app
  metrics.export.cloudwatch.batch-size: 20
Другие вопросы по тегам