English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SpringBoot ActuatorДа, это подпроект в рамке Spring Boot. Он включает множество других функций, которые помогают нам отслеживать и управлять приложениями Spring Boot. Он содержит Actuator точки доступа (место расположения ресурсов). Мы можем использовать HTTP и JMX Если вы хотите получить функциональность, готовую к производству, в приложении, то вам следует использовать S pring Boot Actuator.
Spring Boot Actuator имеет триОсновные функции:
Точки доступа Metrics Аудит
Точка доступа: Актuator endpoint позволяет нам отслеживать приложение и взаимодействовать с ним. Spring Boot предоставляет множество встроенных точек доступа. Мы также можем создать свои собственные точки доступа. Мы можем включать и отключать каждую точку доступа по отдельности. Большинство приложений выбирают HTTP и ID этого endpointа и /actuator префикс
Для примера, /health endpoint предоставляет базовую информацию о здоровье приложения. Actuator по умолчанию его маппинг к /actuator/health .
Metrics: Spring Boot Actuator через Миллиметровая尺каИнтеграция для предоставления метрик. Миллиметровая尺ка интегрирована в Spring Boot. Это библиотека инструментов, поддерживающая передачу метрик из Spring в приложение. Она предназначена для приложений с моделью данных с измеримыми параметрами. Таймеры, индикаторы, счетчики, распределенные обобщенияи Длинная задача таймераОбеспечивает интерфейс, независимый от поставщика.
Audit: Spring Boot предоставляет гибкую рамку для аудита, которая публикует события в AuditEventRepository.Если выполняется spring-security, то автоматически публикуются события аутентификации.
Мы можем включить Spring Boot Actuator, добавив зависимость в файл pom.xml. spring-boot-starter-actuator для включения Actuator.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <version>2.2.2.RELEASE</version> </dependency>
Endpoints Actuator позволяют нам мониторить и взаимодействовать с приложением Spring Boot. Spring Boot содержит множество встроенных endpoints, и мы также можем добавить пользовательские endpoints в приложение Spring Boot.
В таблице ниже описаны часто используемые endpoints.
Id | Использование | по умолчанию |
Actuator | Это предоставляет другие endpoints на основе гипермедийногоСтраница обнаружения. Это требует наличия Spring HATEOAS в классовом пути. | true |
auditevents | Это公开了当前应用程序的审核事件信息. | true |
autoconfig | Это используется для отображения отчета о автоматической конфигурации, который показывает всех кандидатов на автоматическую конфигурацию и причины, по которым они "используются" или "не используются". | true |
beans | Это используется для отображения полного списка всех Spring Bean в приложении. | true |
configprops | Это используется для отображения всех классов с аннотацией @ConfigurationProperties в виде упорядоченного списка. | true |
dump | он используется для выполнения дампинга потоков. | true |
env | он используется для публичного представления свойств из ConfigurableEnvironment Spring. | true |
flyway | он используется для отображения всех примененных Flyway баз данных миграций. | true |
health | он используется для отображения информации о состоянии приложения. | ошибка |
info | он используется для отображения любой информации приложения. | ошибка |
loggers | он используется для отображения и изменения конфигурации логгеров в приложении. | true |
liquibase | он используется для отображения всех примененных Liquibase баз данных миграций. | true |
metrics | он используется для отображения метрической информации текущего приложения. | true |
mappings | он используется для отображения упорядоченного списка всех@RequestMapping путей. | true |
shutdown | он используется для разрешения нормального закрытия приложения. | true |
trace | он используется для отображения информации о трассировке. | true |
Для Spring MVC используются следующие дополнительные точки.
Id | описание | по умолчанию |
docs | он используется для отображения документов, включая примеры запросов и ответов на точки Actuator. | ошибка |
heapdump | он используется для возврата сжатого файла hprof堆 дамп. | true |
jolokia | он используется для公开 JMX bean через HTTP (когда Jolokia в классовом пути). | true |
logfile | он используется для возврата содержимого логовых файлов. | true |
prometheus | он используется для公开 метрики в формате, который может захватывать Prometheus сервер. Он требует зависимости от micrometer-prometheus. | true |
Spring Boot предоставляет безопасность для всех точек Actuator. Он использует на основе формыаутентификацию, которая предоставляет ID пользователя в качестве пользователя и предоставить сгенерированный случайным образом парольМы также можем получить доступ к ограниченным точкам Actuator, настроив базовую аутентификацию для端по. Нам нужно будет management.security.roles Переписать свойства этой конфигурации. Например:
management.security.enabled=true management.security.roles=ADMIN security.basic.enabled=true security.user.name=admin security.user.passowrd=admin
Давайте разберемся с концепцией Actuator на примере.
Шаг 1: Откройте Spring Initializr https://start.spring.io/ и создайте Maven Проект.
Шаг 2: Предоставлен ГруппаНазвание. Мы предоставили com.w3codebox.
Шаг 3: Предоставлен Artefact ID. Мы предоставили spring-boot-actuator-example.
Шаг 4: . Добавьте следующие зависимости: Spring Web, Spring Boot Starter Actuatorи Spring Data Rest HAL браузер.
Шаг 5: Нажмите СозданиеКогда мы нажимаем кнопку "Создать", все спецификации, связанные с проектом, 包装аются в Кнопка. Файл, и загрузите его в нашу локальную систему.
Шаг 6: Извлеките Jar файл и скопируйте его в рабочую область STS.
Шаг 7: Импортируйте папку проекта.
Файл-> Импорт-> Существующий Maven проект-> Просмотр-> Выберите папку spring-boot-actuator-example-> Готово
Импорт займет некоторое время. После импорта проекта мы можем увидеть проектную директорию в разделе "Пакетный ресурс".
Шаг 8: : Создайте класс контроллера. Мы создали класс контроллера с именем DemoRestController.
DemoRestController.java
package com.w3codebox; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class DemoRestController { @GetMapping("/hello") public String hello() { return "Hello User!"; } }
Шаг 9: Откройте application.properties Файл, и добавьте следующее предложение, чтобы отключить безопасность Actuator.
application.properties
management.security.enabled=false
Шаг 10: Запуск SpringBootActuatorExampleApplication.java Файл.
Шаг 11: Откройте браузер и вызовите URL http: //localhost: 8080/actuator. Он возвращает следующую страницу:
{"_links":{"self":{"href":"http://localhost:8080/actuator","templated":false},"health":{"href":"http://localhost:8080/actuator/health","templated":false},"health-path":{"href":"http://localhost:8080/actuator/health/{*path}","templated":true},"info":{"href":"http://localhost:8080/actuator/info","templated":false}}}
По умолчанию приложение запущено на порту 8080. После запуска Actuator мы можем увидеть список всех открытых через HTTP endpoints.
Давайте вызовем URL http: //localhost: 8080/ чтобы вызвать health Эндпоинт. Actuator/Здоровье. Это означает состояние UP Это означает, что приложение работает нормально и работает нормально.
Таким образом, мы можем вызывать другие endpoints для мониторинга и управления приложениями Spring Boot.