wake-up-neo.com

Spring Boot 2.0.0 Endpunkt der M7-Stellgliedmetriken funktioniert nicht

In meiner Spring Boot App (2.0.0.M7) application.properties habe ich festgelegt

management.endpoint.metrics.enabled=true

Wenn ich aber schlug

localhost:8080/actuator/metrics 

Ich bekomme 404.

Was ist die Lösung?

15
Dachstein

Ich möchte die Antwort des OP um weitere Informationen erweitern, da ich mich ein bisschen schwer getan habe, bevor ich endlich über diese Lösung gestolpert bin. Es scheint viel Verwirrung über das Verhalten des Antriebs mit Spring Boot 2 zu geben

Was hat sich nicht geändert

Sie müssen eine Abhängigkeit von Spring-Boot-Starter-Aktor angeben.

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
</dependencies>

Wenn Sie über HTTP auf Aktor-Endpunkte zugreifen möchten, müssen Sie auch eine Abhängigkeit zu Spring-Boot-Starter-Web hinzufügen.

Ihre Pom-Abhängigkeiten werden also wie folgt aussehen

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

Änderungen eingeführt in Spring Boot 2

  1. Endpunkte wie /health, /metrics usw. sind nicht mehr im Standard-Root-Kontext verfügbar. Sie sind ab sofort unter http://{Host}:{port}/actuator..__ verfügbar. Außerdem ist es unerheblich, ob alle anderen Endpunkte Ihrer Anwendung mit einem anderen Kontext beginnen, z. B. /hello - Stellglied ist unter verfügbar /actuator und nicht bei /hello/actuator

  2. Die Antwort vom Endpunkt /actuator ist standardmäßig HATEOAS enabled. Vor Spring Boot 2 war dies nur der Fall wenn sich HATEOAS im Klassenpfad befindet und explizit aktiviert ist in application.yml

  3. Um einen Aktorendpunkt über HTTP verfügbar zu machen, muss er sowohl aktiviert als auch exponiert sein. 

    Standardmäßig: 

    • nur die Endpunkte /health und /info sind verfügbar, unabhängig davon, ob Spring Security in Ihrer Anwendung vorhanden und konfiguriert ist.

    • alle Endpunkte außer /shutdown sind aktiviert (obwohl nur /health und /info verfügbar sind)

  4. Wenn Sie alle Endpunkte verfügbar machen möchten (nicht immer eine gute Idee), können Sie dies durch Hinzufügen von management.endpoints.web.exposure.include=* zu application.properties tun. Vergessen Sie nicht, den Platzhalter anzugeben, wenn Sie Yml-Konfigurationen verwenden.

  5. Alte Eigenschaften, die mit endpoints.xyz beginnen, werden zugunsten von Eigenschaften, die mit management.xyz beginnen, nicht mehr empfohlen. 

Eine vollständige Dokumentation finden Sie in official doc und auch im migrationsleitfaden

33
senseiwu

Fügen Sie Ihrer application.properties-Datei die folgende Zeile hinzu:

management.endpoints.web.exposure.include=metrics

Das ist alles.

5
Jeen

"*" hat in YAML eine besondere Bedeutung. Fügen Sie daher Anführungszeichen hinzu, wenn Sie alle Endpunkte einschließen (oder ausschließen) möchten, wie im folgenden Beispiel dargestellt:

management:
  endpoints:
    web:
      exposure:
        include: "*"
3
Dilan

Für mich funktionierte folgendes (im YAML-Format), das mit Spring Boot 2 Release arbeitet:

management:
  endpoints:
    web:
      exposure:
        include: info, health, metrics
  metrics:
    export:
      atlas:
        enabled: false

auch spezifische Dokumentation finden Sie hier

2
tbo

Okay, ich habe die Lösung gefunden. Ich habe eine weitere Zeile in application.properties hinzugefügt

management.endpoints.web.expose=*

Die Sicherung der Stellgliedendpunkte ist jedoch wichtig

Lesen Sie hier: https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html

2
Dachstein

Entsprechend Mikrometerdokumente .Spring Boot 2.0.x unterstützt die Verwendung des Mikrometers direkt über den Spring Boot Actuator.
Der Endpunkt metric ist standardmäßig in Übereinstimmung mit dem Test von Spring Boot 2 deaktiviert, dass Endpunkte, die möglicherweise sensible Daten zu einer Anwendung verfügbar machen, standardmäßig deaktiviert sind. Es kann durch die Einstellung aktiviert werden:

management.endpoints.web.exposure.include: Metriken

Wenn Sie zu /actuator/metrics navigieren, wird eine Liste der verfügbaren Zählernamen angezeigt.

Um auf sie zuzugreifen, verwenden Sie Folgendes: http: // localhost: 8080/stelluator/metrics/jvm.memory.used

1
makson

Sie müssen die unten aufgeführten Requisiten in Ihre application.properties-Datei einfügen. Ich hatte das gleiche Problem, bis ich die unten aufgeführten Requisiten hinzufügte.

management.endpoints.beans.enabled=false
management.endpoints.web.exposure.include=*
1
Krish

Hatte das gleiche Problem beim Upgrade von Spring Boot 1.5.15 auf 2.1.4

Muss geändert werden, um die ursprüngliche Abhängigkeit für den Spring Boot-Aktuator in meinem pom.xml von:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-actuator</artifactId>
</dependency>

zu:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

beachten Sie das Hinzufügen des Wortes starter im artifactId.

1
disposedtrolley