Пользовательский интерфейс Prometheus, настройки Grafana для приложения с весенней загрузкой

Я использую Spring boot 2.0 и добавляю в POM следующие зависимости.

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

    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-prometheus</artifactId>
    </dependency>

Мой application.yml выглядит так

management.endpoints.web.base-path = /manage management.endpoints.web.exposure.include = "*" endpoints.prometheus.enabled = true

когда я получаю доступ к Прометею в

локальный / управление / Прометей

Я могу видеть все показатели.

Затем моя цель - увидеть указанные выше показатели в пользовательском интерфейсе Prometheus. Для этого я добавил следующие зависимости в свой POM

   <dependency>  
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient_spring_boot</artifactId>
        <version>${prometheus.version}</version>
    </dependency>

    <dependency>
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient_hotspot</artifactId>
        <version>${prometheus.version}</version>
    </dependency>

    <dependency>
        <groupId>io.prometheus</groupId>
        <artifactId>simpleclient_servlet</artifactId>
        <version>${prometheus.version}</version>
    </dependency>

Каковы следующие шаги для меня, чтобы увидеть метрики в пользовательском интерфейсе Prometheus, конечная цель - интегрировать Prometheus в Grafana.

PS: Я сделал поиск в Google и попытался добавить prometheus.yml и добавить аннотации, такие как @EnablePrometheusEndpoint, ничего не сработало, так как все статьи старые.

Изменить: также, как настроить prometheus.yml (metrics_path, target), если загрузочная банка Spring размещена на другом хосте (Azure / AWS), а сервер prometheus находится на другом хосте.


person user1635256    schedule 10.04.2018    source источник


Ответы (2)


Если вы используете Spring Boot 2 и микрометр, вам не нужно добавлять дополнительные зависимости, они импортируются при добавлении micrometer-registry-prometheus. Если вы можете видеть метрики на localhost / manage / prometheus, ваша конфигурация на стороне spring -boot в порядке. больше ничего настраивать не нужно.

Для просмотра показателей в Prometheus вам необходимо:

  1. установить сервер Prometheus https://prometheus.io/docs/prometheus/latest/installation/
  2. настройте Prometheus для очистки (извлечения) метрик с вашего сервера. для этого вам нужно будет изменить файл prometheus.yml, добавив новое задание (не забудьте перезапустить Prometheus после изменения файла yml)
scrape_configs:
  - job_name: 'mySpringBoot'
    metrics_path: '/manage/prometheus'
    static_configs:
      - targets: ['springBootHost:springBootPort']
  1. как только это будет настроено, перейдите в пользовательский интерфейс Prometheus, убедитесь, что целью является UP - http://localhost:9090/targets (при условии, что Prometheus работает на локальном хосте)
  2. если вы не видите свою цель или видите ее как DOWN, это проблема конфигурации или сети.

следующие шаги просты, с большим количеством документации в другом месте:

  1. следующий шаг - установка Grafana
  2. теперь настройте Prometheus как источник данных в Grafana
  3. начните строить свои метрики.
person Yarix    schedule 10.04.2018
comment
Спасибо Яриксу за четкое объяснение. Теперь у меня другая проблема. Моя микрослужба размещена в Azure. Итак, я настроил metrics_path: mywebapp.azure.com/prometheus, схема: https, цели: ['localhost : 9090 ']. Когда я получаю доступ к localhost: 9090 / target, моя работа не выполняется, потому что конечный URL-адрес, который я вижу, - https://localhost:9090https://mywebapp.azure.com/prometheus что неверно, как решить эту проблему микросервис и прометей должны находиться на одном хосте? - person user1635256; 11.04.2018
comment
metrics_path неверен, вы должны просто написать '/ manage / prometheus' или '/ prometheus' в зависимости от того, как вы настроили spring -boot. где работает prometheus server? также в Azure? на той же машине приложения? цели должны быть ['yourSpringBootServer: port'] - person Yarix; 11.04.2018
comment
Сервер Prometheus работает на моем локальном компьютере. metrics_path of / manage / prometheus не работает, поскольку хост не является моим локальным. - person user1635256; 12.04.2018
comment
Это не работает, потому что ваша цель ошибочна. Целью должен быть mywebapp.azure.com. Кроме того, убедитесь, что вы можете получить доступ к mywebapp.azure.com/manage/prometheus со своего локального компьютера. - person Yarix; 12.04.2018
comment
Это не сработало, он говорит, что mywebapp.azure.com не является допустимым именем хоста - person user1635256; 12.04.2018
comment
Поделитесь своим приложением yml и prometheus yml - person Yarix; 12.04.2018

Приложение Spring boot api настраивается с помощью prometheus и grafana в Windows.

  1. Создайте приложение для весенней загрузки и добавьте зависимость в pom.xml -
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
 <groupId>io.micrometer</groupId>
 <artifactId>micrometer-core</artifactId>
</dependency>
<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

если он запущен, перейдите в свой браузер и введите «http://localhost:8080/actuator/prometheus» и вы получите все показатели.

  1. Загрузите и установите сервер Prometheus https://prometheus.io/download/, распакуйте zip и запустите prometheus exe. .

  2. для этого вам нужно будет изменить файл prometheus.yml, добавив новое задание (не забудьте перезапустить Prometheus после изменения файла yml)

Примечание: настройте приложение Spring с помощью Prometheus.

scrape_configs:
  - job_name: 'SpringBootApplicationName
    metrics_path: ‘actuator-prometheus'
    static_configs:
      - targets: [‘IPADDRESS:springBootApplicationPort]
  1. как только это будет настроено, перейдите в пользовательский интерфейс Prometheus, убедитесь, что целью является UP - http://localhost:9090/targets (при условии, что Prometheus работает на локальном хосте)

  2. перейдите к «http://localhost:8080/actuator/prometheus», выберите одну метрику и вставьте - http://localhost:9090/graph и нажмите «Выполнить». Например, вы можете выбрать одну метрику CPU и HTTP, например «http_server_request_seconds_max»

следующие шаги просты, с большим количеством документации в другом месте:

  1. следующим шагом является установка Grafana из - https://grafana.com/grafana/download?platform=windows, распакуйте zip, запустите grafana-server.exe и проверьте в своем браузере 'http://localhost:3000 '
  2. теперь войдите в систему как имя пользователя по умолчанию '' admin и пароль 'admin' и перейдите к настройке, выберите deshboard и создайте источник данных, выберите prometheus и введите URL-адрес prometheus, например - '' http://ipaddress:pord прометея.
  3. и перейдите к графику, нажмите «Изменить», выберите источник данных и введите метрический запрос, например «http_server_request_seconds_max». 9. начните строить свои метрики.
person Bheem Singh    schedule 17.11.2019