Dans un environnement de production, il est nécessaire de surveiller la disponibilité des services en temps réel ou régulièrement. La fonction d'actionneur (surveillance de l'état) de Spring Boot fournit de nombreuses interfaces nécessaires à la surveillance, qui peuvent configurer et afficher le système d'application, et effectuer des statistiques de fonctions associées.
Actuator fournit une interface Rest pour afficher les informations de surveillance.
L'interface est divisée en trois grandes catégories :
Classe de configuration d'application : obtenez des informations sur la classe de configuration liées aux applications SpringBoot telles que la configuration de l'application, les variables d'environnement, les rapports de configuration automatisés chargés dans l'application.
Classe métrique : obtenez les métriques utilisées pour la surveillance lorsque l'application est en cours d'exécution, telles que : les informations sur la mémoire, les informations sur le pool de threads, les statistiques des requêtes HTTP, etc.
Classe de contrôle des opérations : fournit des fonctions d'exploitation telles que la fermeture d'applications.
<!-- 监控依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
# 端口 server: port: 8016 spring: application: # 应用名称 name: node16-boot-actuator management: endpoints: web: exposure: # 打开所有的监控点 include: "*" # 自定义监控路径 monitor # 默认值:http://localhost:8016/actuator/* # 配置后:http://localhost:8016/monitor/* base-path: /monitor endpoint: health: show-details: always shutdown: # 通过指定接口关闭 SpringBoot enabled: true # 可以自定义端口 # server: # port: 8089 # 描述项目基础信息 info: app: name: node16-boot-actuator port: 8016 version: 1.0.0 author: cicada
路径:http://localhost:8016/monitor/info 输出: { "app": { "name": "node16-boot-actuator", "port": 8016, "version": "1.0.0", "author": "cicada" } }
2. L'interface Health
路径:http://localhost:8016/monitor/health 输出: { "status": "UP", "details": { "diskSpace": { "status": "UP", "details": { "total": 185496236032, "free": 140944084992, "threshold": 10485760 } } } }
3. L'interface Beans
路径:http://localhost:8016/monitor/beans 输出: { "contexts": { "node16-boot-actuator": { "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"] } } } }
4. Interface Conditions
路径:http://localhost:8016/monitor/conditions 输出: { "contexts": { "node16-boot-actuator": { "positiveMatches": { "AuditAutoConfiguration#auditListener": [{ "condition": "OnBeanCondition", "message": "@ConditionalOnMissingBean" }], } }
5. L'interface HeapDump
路径:http://localhost:8016/monitor/heapdump
6. Interface de mappages
路径:http://localhost:8016/monitor/mappings 输出: { "contexts": { "node16-boot-actuator": { "mappings": { "dispatcherServlets": { "dispatcherServlet": [ { "handler": "Actuator web endpoint 'auditevents'", "predicate": "{GET /monitor/auditevents || application/json]}", "details": { "handlerMethod": { "className": "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.Operat "name": "handle", "descriptor": "(Ljavax/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;" }, "requestMappingConditions": { "consumes": [], "headers": [], "methods": ["GET"], "params": [], "patterns": ["/monitor/auditevents"], "produces": [{ "mediaType": "application/vnd.spring-boot.actuator.v2+json", "negated": false }, { "mediaType": "application/json", "negated": false }] } } } } } }
7. Interface ThreadDump
路径:http://localhost:8016/monitor/threaddump 输出: { "threads": [{ "threadName": "DestroyJavaVM", "threadId": 34, "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 } ] }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!