web-dev-qa-db-fra.com

Le point de terminaison des métriques de l'actionneur Spring Boot 2.0.0 M7 ne fonctionne pas

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?

15
Dachstein

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

  1. 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

  2. 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

  3. 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)

  4. 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.

  5. Les anciennes propriétés commençant par 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

33
senseiwu

Ajoutez la ligne suivante à votre fichier application.properties:

management.endpoints.web.exposure.include=metrics

C'est tout.

5
Jeen

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

2
tbo

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

2
Dachstein

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

1
makson

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=*
1
Krish