Dans mon application de démarrage Spring (2.0.0.M7), application.properties, j'ai défini
management.endpoint.metrics.enabled=true
Cependant, quand je frappe
localhost:8080/actuator/metrics
Je reçois 404.
Quelle est la solution?
J'aimerais améliorer la réponse du PO avec plus d'informations alors que je me débattais un peu avant de tomber finalement sur cette solution. Il semble y avoir beaucoup de confusion quant aux changements de comportement des actionneurs avec Spring Boot 2.
Ce qui n'a pas changé
Vous devez inclure une dépendance à Spring-Boot-Starter-Actionnator} _
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
Si vous souhaitez accéder aux points de terminaison d'actionneur via HTTP, vous devez également ajouter une dépendance à spring-boot-starter-web
Donc, vos dépendances de pom ressembleront à celles ci-dessous
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
Modifications introduites dans Spring Boot 2
Les points d'extrémité tels que /health
, /metrics
, etc. sont n'est plus disponible au contexte racine par défaut. Ils sont disponibles à partir de maintenant sous http://{Host}:{port}/actuator
. De plus, peu importe que tous les autres points de terminaison de votre application commencent par un autre contexte tel que /hello
- actuator est disponible à /actuator
et non à /hello/actuator
.
La réponse de /actuator
endpoint est par défaut HATEOAS enabled. Avant Spring Boot 2, c'était le cas seulement si HATEOAS est sur le chemin de classe et explicitement activé in application.yml
Pour rendre un point de terminaison d'actionneur disponible via HTTP, il doit être activé à la fois et exposé.
Par défaut:
seuls les points de terminaison /health
et /info
sont exposés, que la sécurité Spring soit présente et configurée dans votre application.
tous les noeuds finaux sauf /shutdown
sont activés (même si seuls /health
et /info
sont exposés)
Si vous souhaitez exposer tous les points de terminaison (ce n’est pas toujours une bonne idée), vous pouvez le faire en ajoutant management.endpoints.web.exposure.include=*
à application.properties
. N'oubliez pas de citer le caractère générique si vous utilisez les configurations yml.
endpoints.xyz
sont déconseillées au profit de propriétés commençant par management.xyz
Pour une documentation complète, voir doc officiel ainsi que le guide de migration
Ajoutez la ligne suivante à votre fichier application.properties
:
management.endpoints.web.exposure.include=metrics
C'est tout.
Ce qui a fonctionné pour moi est le suivant (au format YAML) fonctionnant avec la version 2 de Spring Boot:
management:
endpoints:
web:
exposure:
include: info, health, metrics
metrics:
export:
atlas:
enabled: false
vous pouvez également trouver une documentation spécifique ici
Ok j'ai trouvé la solution. J'ai ajouté une autre ligne dans application.properties
management.endpoints.web.expose=*
Cependant, il est important de sécuriser les extrémités de l'actionneur
Lire ici: https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html
Selon micrometer docs .Spring Boot 2.0.x prend en charge le micromètre prêt à l'emploi via Spring Boot Actuator.
Le noeud final metric est désactivé par défaut, conformément au test décisif de Spring Boot 2 selon lequel tout noeud final qui expose potentiellement des données sensibles concernant une application doit être désactivé par défaut. Il peut être activé en définissant:
management.endpoints.web.exposure.include: métriques
Naviguer vers /actuator/metrics
affiche une liste des noms de compteurs disponibles.
Pour y accéder, utilisez quelque chose comme ceci: http: // localhost: 8080/actuator/metrics/jvm.memory.used
Vous devez ajouter les accessoires ci-dessous dans votre fichier application.properties
. J'ai eu le même problème jusqu'à ce que j'ai ajouté les accessoires ci-dessous.
management.endpoints.beans.enabled=false
management.endpoints.web.exposure.include=*