Введение в привод
Actuator — это функция самоанализа и мониторинга прикладной системы, предоставляемая Spring Boot. С помощью Actuator вы можете использовать индикаторы на основе данных для измерения работы приложения, такие как просмотр диска сервера, памяти, ЦП и другой информации, потоков системы, gc, рабочего состояния и так далее.
Actuator обычно управляет приложениями и отслеживает их с помощью HTTP и JMX, в большинстве случаев с использованием HTTP.
Описание конечной точки привода
| конечная точка | описывать |
|---|---|
| auditevents | Получить информацию о событиях аудита, предоставляемую текущим приложением |
| beans | Получите полный список отношений для всех Spring Beans в приложении |
| caches | Получить общедоступный кеш |
| conditions | Получите информацию об условиях автоматической настройки и запишите, какие условия автоматической настройки выполняются и почему они не выполняются. |
| configprops | Получите все свойства конфигурации, включая конфигурацию по умолчанию, показывая версию всех @ConfigurationProperties в столбце с сортировкой. |
| env | Получить все переменные среды |
| flyway | Получить всю информацию о миграции базы данных Flyway, которая была применена, требуется один или несколько компонентов Flyway. |
| liquibase | Получите все примененные миграции базы данных Liquibase. Требуется один или несколько компонентов Liquibase. |
| health | Получение показателей работоспособности приложения (информация о работоспособности) |
| httptrace | Получите информацию о трассировке HTTP (по умолчанию последние 100 обменов HTTP-запросами и ответами). Требуется компонент HttpTraceRepository. |
| info | Получить информацию о приложении |
| integrationgraph | Покажите диаграмму интеграции Spring. Необходимо полагаться на spring-integration-core |
| loggers | Отображение и изменение конфигурации журналов в приложении |
| logfile | Возвращает содержимое файла журнала (если установлены свойства logging.file.name или logging.file.path) |
| metrics | Получить информацию о системных метриках |
| mappings | Отображает сопоставленный список всех путей @RequestMapping |
| scheduledtasks | Показывать запланированные задачи в приложении |
| sessions | Позволяет извлекать и удалять пользовательские сеансы из хранилищ сеансов, поддерживаемых Spring Session. Веб-приложения на основе сервлетов, которым необходимо использовать Spring Session |
| shutdown | Чтобы закрыть приложение, для параметра endpoints.shutdown.enabled необходимо установить значение true, по умолчанию — false. |
| threaddump | Получить информацию о дампе системного потока |
| heapdump | вернуть файл дампа кучи hprof |
| jolokia | Предоставляйте JMX-бины через HTTP (не для WebFlux, когда Jolokia находится в пути к классам). Зависит от jolokia-core |
| prometheus | Предоставляйте метрики в формате, который может обрабатывать сервер Prometheus. Требуются зависимости от micrometer-registry-prometheus |
Использование и конфигурация привода
быстрый в использовании
зависимости проекта
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
конфигурационный файл
management.endpoints.enabled-by-default=true
#启动所有端点
management.endpoints.web.exposure.include=*
#自定义管理端点路径
#management.endpoints.web.base-path=/manage
В Spring Boot 2.X Actuator по умолчанию открывает только конечные точки работоспособности и информации.
Добавить кmanagement.endpoints.web.exposure.include=*Запустите приложение после настройки, доступhttp://127.0.0.1:8080/actuatorМы можем увидеть список всех конечных точек Actuator.
еслиmanagement.endpoints.enabled-by-defaultУстановите значение false, чтобы отключить все конечные точки, чтобы включить их следующим образом:
management.endpoints.enabled-by-default=false
management.endpoint.info.enabled=true
禁用的端点将从应用程序上下文中完全删除。如果只想更改公开端点,使用include和exclude属性。 Используйте следующим образом:
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
management.endpoints.web.base-path=/manageКонфигурация представляет собой путь / activuator, который нужно переопределить как / manage.
Подробное объяснение общих конечных точек
health
Он в основном используется для определения рабочего состояния приложения и является наиболее часто используемой точкой мониторинга. Программное обеспечение для мониторинга обычно использует этот интерфейс для отслеживания состояния работы приложения в режиме реального времени и передачи информации о тревоге соответствующему персоналу в случае сбоя системы, например, использование дискового пространства, некоторые индикаторы работоспособности, такие как база данных и кэш. По умолчанию конечная точка работоспособности открыта, доступhttp://127.0.0.1:8080/actuator/healthВы можете увидеть текущий статус приложения.
{"status":"UP"}
Если вам нужно увидеть детали, вам нужно добавить конфигурацию:
management.endpoint.health.show-details=always
Информация, возвращенная из визита, выглядит следующим образом:
{"status":"UP","details":{"diskSpace":{"status":"UP","details":{"total":180002725888,"free":8687988736,"threshold":10485760}}}}
info
Проверьте, настроена ли информация о приложении в application.properties. Как мы настраиваем в проекте это:
info.app.name=Spring Boot Actuator Demo
info.app.version=v1.0.0
info.app.description=Spring Boot Actuator Demo
Запустите проект, посетитеhttp://127.0.0.1:8080/actuator/infoВозвращаемая информация выглядит следующим образом:
{"app":{"name":"Spring Boot Actuator Demo","version":"v1.0.0","description":"Spring Boot Actuator Demo"}}
env
Через env вы можете получить всю информацию о работающей среде для текущего приложения Spring Boot, такую как: информация об операционной системе (systemProperties), информация о переменной среды, информация о версии JDK и ClassPath, включенные в настоящее время файлы конфигурации (activeProfiles), propertySources, конфигурация приложения информация (applicationConfig) и т. д.
в состоянии пройтиhttp://127.0.0.1:8080/actuator/env/{name}, имя указывает информацию, которую вы хотите просмотреть, которая может отображаться независимо.
beans
доступhttp://127.0.0.1:8080/actuator/beansЧасть возвращаемой информации выглядит следующим образом:
{
"contexts": {
"Spring Boot Actuator Demo": {
"beans": {
"endpointCachingOperationInvokerAdvisor": {
"aliases": [
],
"scope": "singleton",
"type": "org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor",
"resource": "class path resource [org/springframework/boot/actuate/autoconfigure/endpoint/EndpointAutoConfiguration.class]",
"dependencies": [
"environment"
]
},
"defaultServletHandlerMapping": {
"aliases": [
],
"scope": "singleton",
"type": "org.springframework.web.servlet.HandlerMapping",
"resource": "class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]",
"dependencies": [
]
},
...
}
}
}
}
Из возвращенной информации мы видим, что она в основном отображает такую информацию, как псевдоним компонента, тип, является ли он синглтоном, адрес класса и зависимости.
conditions
По условиям в приложении можно запускать код при просмотре действующей конфигурации при каких условиях или почему автоматическая настройка не вступает в силу.
доступhttp://127.0.0.1:8080/actuator/conditionsЧасть возвращаемой информации выглядит следующим образом:
{
"contexts": {
"Spring Boot Actuator Demo": {
"positiveMatches": {
"SpringBootAdminClientAutoConfiguration": [
{
"condition": "OnWebApplicationCondition",
"message": "@ConditionalOnWebApplication (required) found 'session' scope"
},
{
"condition": "SpringBootAdminClientEnabledCondition",
"message": "matched"
}
],
"SpringBootAdminClientAutoConfiguration#metadataContributor": [
{
"condition": "OnBeanCondition",
"message": "@ConditionalOnMissingBean (types: de.codecentric.boot.admin.client.registration.metadata.CompositeMetadataContributor; SearchStrategy: all) did not find any beans"
}
],
...
}
}
}
}
loggers
Получить информацию системного журнала.
доступhttp://127.0.0.1:8080/actuator/loggersЧасть возвращаемой информации выглядит следующим образом:
{
"levels": [
"OFF",
"ERROR",
"WARN",
"INFO",
"DEBUG",
"TRACE"
],
"loggers": {
"ROOT": {
"configuredLevel": "INFO",
"effectiveLevel": "INFO"
},
"cn": {
"configuredLevel": null,
"effectiveLevel": "INFO"
},
"cn.zwqh": {
"configuredLevel": null,
"effectiveLevel": "INFO"
},
"cn.zwqh.springboot": {
"configuredLevel": null,
"effectiveLevel": "INFO"
},
...
}
}
mappings
Просмотрите все сопоставления URL-адресов, список всех путей @RequestMapping.
доступhttp://127.0.0.1:8080/actuator/mappingsЧасть возвращаемой информации выглядит следующим образом:
{
"contexts": {
"Spring Boot Actuator Demo": {
"mappings": {
"dispatcherServlets": {
"dispatcherServlet": [
{
"handler": "ResourceHttpRequestHandler [class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/], class path resource []]",
"predicate": "/**/favicon.ico",
"details": null
},
...
]
}
}
}
}
}
heapdump
доступ:http://127.0.0.1:8080/actuator/heapdump автоматически сгенерируетGZip сжимает дамп файла кучи JVM, мы можем использовать встроенный в JDK инструмент мониторинга JVM VisualVM, чтобы открыть этот файл для просмотра. Как показано на рисунке:
threaddump
Получите информацию о дампе системного потока, в основном показывающую имя потока, идентификатор потока, статус потока, следует ли ждать блокировки ресурсов и другую информацию. На работе мы можем устранять связанные с этим проблемы, наблюдая за состоянием резьбы.
доступhttp://127.0.0.1:8080/actuator/threaddumpЧасть возвращаемой информации выглядит следующим образом:
{
"threads": [
{
"threadName": "DestroyJavaVM",
"threadId": 40,
"blockedTime": -1,
"blockedCount": 0,
"waitedTime": -1,
"waitedCount": 0,
"lockName": null,
"lockOwnerId": -1,
"lockOwnerName": null,
"inNative": false,
"suspended": false,
"threadState": "RUNNABLE",
"stackTrace": [
],
"lockedMonitors": [
],
"lockedSynchronizers": [
],
"lockInfo": null
},
...
]
}
shutdown
Включите интерфейс, чтобы закрыть приложение Spring Boot.Чтобы использовать эту функцию, вам необходимо выполнить следующую настройку:
management.endpoint.shutdown.enabled=true
Можно получить через почтовый (только почтовый) запросhttp://127.0.0.1:8080/actuator/shutdownЗакройте приложение.
metrics
доступhttp://127.0.0.1:8080/actuator/metricsИнформационные элементы системных показателей, которые могут быть получены, следующие:
{
"names": [
"jvm.memory.max",
"jvm.threads.states",
"jvm.gc.pause",
"http.server.requests",
"process.files.max",
"jvm.gc.memory.promoted",
"system.load.average.1m",
"jvm.memory.used",
"jvm.gc.max.data.size",
"jvm.memory.committed",
"system.cpu.count",
"logback.events",
"tomcat.global.sent",
"jvm.buffer.memory.used",
"tomcat.sessions.created",
"jvm.threads.daemon",
"system.cpu.usage",
"jvm.gc.memory.allocated",
"tomcat.global.request.max",
"tomcat.global.request",
"tomcat.sessions.expired",
"jvm.threads.live",
"jvm.threads.peak",
"tomcat.global.received",
"process.uptime",
"tomcat.sessions.rejected",
"process.cpu.usage",
"tomcat.threads.config.max",
"jvm.classes.loaded",
"jvm.classes.unloaded",
"tomcat.global.error",
"tomcat.sessions.active.current",
"tomcat.sessions.alive.max",
"jvm.gc.live.data.size",
"tomcat.threads.current",
"process.files.open",
"jvm.buffer.count",
"jvm.buffer.total.capacity",
"tomcat.sessions.active.max",
"tomcat.threads.busy",
"process.start.time"
]
}
В соответствии с индикаторами в именах доступа вы можете просмотреть информацию о конкретном индикаторе. как доступhttp://127.0.0.1:8080/actuator/metrics/jvm.memory.usedВозвращаемая информация выглядит следующим образом:
{
"name": "jvm.memory.used",
"description": "The amount of used memory",
"baseUnit": "bytes",
"measurements": [
{
"statistic": "VALUE",
"value": 1.16828136E8
}
],
"availableTags": [
{
"tag": "area",
"values": [
"heap",
"nonheap"
]
},
{
"tag": "id",
"values": [
"Compressed Class Space",
"PS Survivor Space",
"PS Old Gen",
"Metaspace",
"PS Eden Space",
"Code Cache"
]
}
]
}
образец кода
Справочная документация
docs.spring.IO/весенняя загрузка…
Если не указано иное, авторские права на эту статью принадлежатутренний туманВсе, пожалуйста, указывайте источник при перепечатке.
Оригинальное название: Spring Boot 2.X (16): использование и настройка Spring Boot Actuator для мониторинга приложений.
Оригинальный адрес: https://www.zwqh.top/article/info/25
Если статья была вам полезна, отсканируйте код и подпишитесь на мой официальный аккаунт, статья постоянно обновляется...