SpringBoot использует мониторинг prometheus

Spring Boot

В этой статье описывается, как SpringBoot использует Prometheus для мониторинга Grafana.

1. О Прометее

Prometheus — это инструмент с открытым исходным кодом для мониторинга на основе метрик приложений. Я считаю, что многие проекты используют его для мониторинга.Подробности вы можете проверить на официальном сайте:Прометей.IO/docs/intro….

2. О Графане

Grafana — это инструмент мониторинга с открытым исходным кодом, как показано на рисунке.

Как видно из рисунка, использование мониторинга Grafana очень велико и предоставляет множество визуальных значков.

Адрес официального сайта:grafana.com/

3. SpringBoot использует Prometheus

3.1 Зависимый контент

Использовать Prometheus в SpringBoot на самом деле очень просто. Вам не нужно настраивать слишком много вещей. Добавьте зависимости в файл pom. Полное содержание выглядит следующим образом.

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.3.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.dalaoyang</groupId>
	<artifactId>springboot2_prometheus</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>springboot2_prometheus</name>
	<description>springboot2_prometheus</description>

	<properties>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-prometheus</artifactId>
			<version>1.1.3</version>
		</dependency>
	</dependencies>


	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

3.2 Файл конфигурации

Добавьте конфигурацию в файл конфигурации, здесь приведены только некоторые простые конфигурации, свойство management.metrics.tags.application задается в этой статье с помощью панели управления Grafana, как показано ниже:

spring.application.name=springboot_prometheus
management.endpoints.web.exposure.include=*
management.metrics.tags.application=${spring.application.name}

3.3 Настройка приложения

Измените класс запуска следующим образом.

@SpringBootApplication
public class Springboot2PrometheusApplication {

	public static void main(String[] args) {
		SpringApplication.run(Springboot2PrometheusApplication.class, args);
	}
	@Bean
	MeterRegistryCustomizer<MeterRegistry> configurer(
			@Value("${spring.application.name}") String applicationName) {
		return (registry) -> registry.config().commonTags("application", applicationName);
	}
}

Здесь настраивается проект SpringBoot, запустите проект и получите доступhttp://localhost:8080/actuator/prometheus, как показано, можно увидеть некоторые показатели.

4.Конфигурация Прометея

4.1 Настройка приложения

Настройте и отслеживайте наше приложение SpringBoot в prometheus.Полная конфигурация показана ниже.

# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['127.0.0.1:9090']
###以下内容为SpringBoot应用配置
  - job_name: 'springboot_prometheus'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['127.0.0.1:8080']

4.2 Запустить Прометей

Запустите Prometheus, войдите в браузер и просмотрите страницу Prometheus, как показано на рисунке.

Щелкните место, показанное на рисунке, чтобы просмотреть приложения, отслеживаемые Prometheus.

Страница UP в списке является уцелевшим экземпляром, как показано на рисунке.

Многие индексы также можно просмотреть, как показано ниже.

5. Конфигурация Графана

Запустите Grafana и настройте источник данных Prometheus.Вот пример Doshboard с ID 4701 (адрес:Конечно же, включите его. com/dashboards/…) как показано.

Нажмите кнопку импорта, как показано в Grafana.

Заполните 4701, как показано на рисунке, а затем нажмите «Загрузить».

Следующий импорт Dashboard.

После импорта вы можете увидеть график индикатора, соответствующий нашему проекту SpringBoot, как показано на рисунке.

6. Исходный код

Адрес источника:git ee.com/Большой парень Ян/Да…