Maison  >  Article  >  Java  >  Comment configurer le composant Actuator dans SpringBoot2

Comment configurer le composant Actuator dans SpringBoot2

王林
王林avant
2023-05-14 08:46:111859parcourir

1. Introduction à l'actionneur

1. Fonction du composant de surveillance

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.

2. Classification de surveillance

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.

2. Intégration avec SpringBoot2.0

1. Package Jar de dépendance de base

<!-- 监控依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2. Fichier de configuration Yml

# 端口
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

3. Explication détaillée de l'interface de surveillance

1.

路径:http://localhost:8016/monitor/info
输出:
{
    "app": {
        "name": "node16-boot-actuator",
        "port": 8016,
        "version": "1.0.0",
        "author": "cicada"
    }
}

2. L'interface Health

health est principalement utilisée pour vérifier l'état d'exécution de l'application

路径:http://localhost:8016/monitor/health
输出:
{
    "status": "UP",
    "details": {
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 185496236032,
                "free": 140944084992,
                "threshold": 10485760
            }
        }
    }
}

3. L'interface Beans

affiche le type de bean, l'instance unique et les instances multiples, l'alias, le chemin complet de la classe, en fonction. Pot, etc.

路径: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

Vérifiez les conditions dans lesquelles la configuration est valide, ou pourquoi la configuration automatique n'est pas valide.

路径:http://localhost:8016/monitor/conditions
输出:
{
    "contexts": {
        "node16-boot-actuator": {
            "positiveMatches": {
                "AuditAutoConfiguration#auditListener": [{
                    "condition": "OnBeanCondition",
                    "message": "@ConditionalOnMissingBean"
                }],
    }
}

5. L'interface HeapDump

génère automatiquement le fichier de vidage du tas Jvm HeapDump Vous pouvez utiliser l'outil de surveillance VisualVM pour ouvrir ce fichier et afficher l'instantané de la mémoire.

路径:http://localhost:8016/monitor/heapdump

6. Interface de mappages

Décrit la relation de mappage entre les chemins URI et les contrôleurs

路径: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

Affiche le nom du thread, l'ID du thread, s'il faut attendre le verrouillage, l'état du thread, le verrouillage du thread et d'autres informations connexes.

路径: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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer