Introduction à la surveillance à partir de Java Touching Prometheus

Qu'est-ce que Prométhée?

Système de surveillance de type pull. OSS. Un système qui peut surveiller la mémoire et l'utilisation du processeur.

Qu'est-ce qu'un système de surveillance de type pull?

Systèmes de surveillance normaux (Meckerel, Sensu, etc.) Installez un agent du côté de la surveillance et envoyez les informations au serveur de surveillance.

Au contraire, le type Pull acquiert des informations du côté surveillé par le serveur de surveillance.

mérite et démérite

Type de poussée

[mérite] ・ Facile à surveiller en installant simplement l'application -Il y a peu de changements dans les paramètres du serveur même si le nombre de cibles de surveillance augmente.

[Démérite] ・ Lorsque la quantité de surveillance augmente, la charge sur le serveur de surveillance augmente.

Type de traction

[mérite] ・ Il est plus facile de voir que la cible de surveillance est vers le bas que le type Push. -La charge sur le serveur de surveillance est inférieure à Push

[Démérite] -Vous devez définir le point final à surveiller. Ce n'est pas qu'une simple installation. ・ Lorsque le nombre de cibles de surveillance augmente, il est nécessaire de régler à chaque fois.

Ce but

Dans l'application Spring, liez les données à Promethus, Montrez bien avec Grafana.

image.png

procédure

Créer un point de terminaison Promethus au printemps

Ajout de Spring Actuator de Spring Initializr [https://start.spring.io/]. Spring Actuator pourra vérifier les vidages Spring et les contrôles de santé.

image.png

Définissez Micrometer Registry Prometheus comme dépendance. [ https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus ]

Maven Repository:.png

Ouvrez le point de terminaison à partir du fichier de propriétés.

application.properties


#Plein ouvert
management.endpoints.web.exposure.include=*

Démarrez l'application et confirmez que le point de terminaison est créé.

http://localhost:8080/actuator/prometheus

Paramètres Prometheus

Peut être défini avec le YML suivant

prometheus.yml



global:
  #Fréquence d'acquisition de la cible
  scrape_interval:     10s
  evaluation_interval: 10s

#Surveillance des paramètres cibles
scrape_configs:
  #Paramètres de surveillance de Spring Boot App Exporter
  - job_name: 'springboot'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['web:8080']
        labels:
          group: 'docker-springboot'

Lancez Prometheus / Grafana / App

Commencez avec Docker Compose.

docker-compose.yml


version: '3.1'
services:

  web:
    build: app/
    ports:
      - "8080:8080"

  monitor:
    build: prometheus/
    ports:
      - "9090:9090"
    depends_on:
      - "web"

  grafana:
    image: grafana/grafana
    ports:
      - "3000:3000"
Vérifiez Prométhée

▼ Écran pour confirmer la cible de surveillance

http://54.238.228.193:9090/targets

image.png

▼ Écran de confirmation du graphique

http://54.238.228.193:9090/graph

image.png

Cependant, l'interface utilisateur graphique n'est pas assez bonne. Alors regardez Grafana.

Vérifiez Grafana

URL: http://localhost:3000 ID: admin (initial) PASS: admin (initial)

▼ Sélectionnez une source de données

image.png

Définissez l'URL comme ci-dessous

Prometheus.png

▼ Créer un tableau de bord

Sélectionnez Ajouter une requête

image.png

Après cela, réglez-le à votre goût

New dashboard.png

Autre côté

・ Les classes de points de terminaison Promethuns définies dans Spring peuvent être héritées et personnalisées.

・ Les paramètres de notification peuvent être difficiles pour Promethuns et Grafana

Recommended Posts

Introduction à la surveillance à partir de Java Touching Prometheus
[Java] Introduction à Java
Introduction à Java
Changements de Java 8 à Java 11
Somme de Java_1 à 100
De Java à Ruby !!
Introduction à la commande java
Nouvelles fonctionnalités de Java7 à Java8
Connectez-vous de Java à PostgreSQL
[Java] Introduction à l'expression lambda
[Java] Introduction à l'API Stream
De Java inefficace à Java efficace
[Introduction aux jeux Janken (comme)] Java
[Introduction à Java] À propos des expressions lambda
[Introduction à Java] À propos de l'API Stream
Introduction à la programmation fonctionnelle (Java, Javascript)
Java sera impliqué dès aujourd'hui
Introduction à Ruby (à partir d'autres langues)
Introduction initiale à Mac (ingénieur Java)
Java, interface pour partir du débutant
De l'introduction à l'utilisation de byebug
La route de JavaScript à Java
[Java] Conversion d'un tableau à une liste
[Java] Introduction
Introduction à Scala du point de vue Java (basique)
Surveillance du démarrage par lots (Java x PushGateway x Prometheus)
Introduction à Java pour la première fois # 2
Introduction aux algorithmes avec java-Search (recherche prioritaire en profondeur)
Convertir l'heure UTC Java en heure JST
[Introduction à Java] Comment écrire un programme Java
Connectez-vous de Java à MySQL à l'aide d'Eclipse
Deep Learning Java à partir de zéro Chapitre 1 Introduction
De l'installation d'Eclipse à l'exécution de Java (PHP)
Publier sur Slack à partir de Play Framework 2.8 (Java)
Java: Comment envoyer des valeurs du servlet au servlet
[Java] Flux du code source à l'exécution
Sortie du livre "Introduction à Java"
[Introduction à Java] À propos des déclarations et des types de variables
Précautions lors de la migration de VB6.0 vers JAVA
Mémo pour la migration de Java vers Kotlin
Conversion de type du type java Big Decimal au type String
Introduction aux algorithmes avec java --Search (recherche de priorité de largeur)
[Java] Flux de l'introduction de STS à la confirmation de la page dynamique sur l'hôte local (2/3)
[Java] Flux de l'introduction de STS à la confirmation de la page dynamique sur l'hôte local (1/3)
Introduction à Ruby 2
[Java] De deux listes à une liste de tableaux
Upsert du SDK Java vers Azure Cosmos DB
Exécuter R à partir de Java Je veux exécuter rJava
[Introduction à Java] À propos de la conversion de type (distribution, promotion)
Introduction aux algorithmes avec java --Search (bit full search)
Connectez-vous à Aurora (MySQL) depuis une application Java
Pour devenir programmeur VB.net depuis une boutique Java
Migrer de Java vers Kotlin côté serveur + Spring-boot
Ingénieur en route vers Java Partie 1 Introduction et construction de l'environnement
[Mensuel 2017/04] Introduction à groovy !! ~ Comparaison de grammaire / spécification Java ~
Comment obtenir une classe depuis Element en Java
Introduction à web3j