Spring Boot 2 - конечная точка метрик привода не работает

В моем приложении Spring Boot App (2.0.0.M7) application.properties я установил

management.endpoint.metrics.enabled=true

Однако, когда я нажал

localhost:8080/actuator/metrics 

Я получаю 404.

Какое решение?

Ответ 1

Я хотел бы дополнить ответ OP более подробной информацией, поскольку я немного потрудился, прежде чем, наконец, наткнулся на это решение, и, похоже, существует большая путаница в отношении изменений в поведении привода с Spring Boot 2.

Что не изменилось

Вы должны включить зависимость для пружинно-загрузочного-пускового привода

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

Если вы хотите получить доступ к конечным точкам привода через HTTP, вам также необходимо добавить зависимость к spring-boot-starter-web

Таким образом, ваши зависимости пом будут выглядеть так, как показано ниже

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

Изменения, внесенные в Spring Boot 2

  1. Конечные точки, такие как /health, /metrics и т.д., Больше не доступны в корневом контексте по умолчанию. Теперь они доступны по адресу http://{host}:{port}/actuator. Кроме того, не имеет значения, начинаются ли в вашем приложении все другие конечные точки с какого-либо другого контекста, например, /hello - actator доступен в /actuator а не в /hello/actuator.

  2. Ответ от /actuator конечной точки /actuator по умолчанию включен HATEOAS. До Spring Boot 2 это было так, только если HATEOAS находится в пути к классам и явно включен в application.yml

  3. Чтобы сделать конечную точку привода доступной через HTTP, ее необходимо включить и открыть.

    По умолчанию:

    • открываются только конечные точки /health и /info, независимо от того, присутствует ли Spring Security и настроен ли он в вашем приложении.

    • все конечные точки, кроме /shutdown включены (хотя выставлены только /health и /info)

  4. Если вы хотите выставить все конечные точки (не всегда хорошая идея), вы можете сделать это, добавив management.endpoints.web.exposure.include=* в application.properties. Не забудьте указать подстановочный знак, если вы используете yml-конфигурации.

  5. Старые свойства, начинающиеся с endpoints.xyz, устарели в пользу свойств, начинающихся с management.xyz

Для полной документации см. Официальный документ, а также руководство по миграции

Ответ 2

Для меня сработало следующее (в формате YAML), работающее с релизом весенней загрузки 2:

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

также конкретную документацию можно найти здесь here

Ответ 3

Добавьте следующую строку в ваш файл application.properties:

management.endpoints.web.exposure.include=metrics

Все это.

Ответ 4

Вам необходимо добавить нижеперечисленные реквизиты в ваш файл application.properties. У меня была такая же проблема, пока я не добавил ниже реквизит.

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

Ответ 5

"*" имеет особое значение в YAML, поэтому обязательно добавляйте кавычки, если вы хотите включить (или исключить) все конечные точки, как показано в следующем примере:

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

Ответ 7

Согласно документации по микрометрам.Spring Boot 2.0.x поддерживает микрометр из коробки через привод Spring Boot.
По умолчанию показатель конечной точки отключен, в соответствии с лакмусовой бумажкой Spring Boot 2s, что любая конечная точка, которая потенциально может предоставить конфиденциальные данные о приложении, должна быть отключена по умолчанию. Это можно включить, установив:

management.endpoints.web.exposure.include: метрики

Переход к /actuator/metrics отображает список доступных имен счетчиков.

Чтобы получить к ним доступ, используйте что-то вроде этого: http://localhost: 8080/activator/metrics/jvm.memory.used

Ответ 8

При обновлении Spring Boot 1.5.15 до 2.1.4 произошла та же проблема

Необходимо изменить исходную зависимость для привода Spring Boot в моем pom.xml из:

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

чтобы:

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

обратите внимание на добавление слова starter в artifactId.

Ответ 9

Следующая конфигурация работает для меня

server.servlet.context-путь =/путешествия management.endpoints.web.exposure.include = *

Затем вам нужно добавить контекстный путь:http://localhost:8080/travel/actuator/metrics/