Einführung in die Überwachung von Java Touching Prometheus

Was ist Prometheus?

Typüberwachungssystem ziehen. OSS. Ein System, das die Speicher- und CPU-Auslastung überwachen kann.

Was ist ein Pull-Type-Überwachungssystem?

Normale Überwachungssysteme (Meckerel, Sensu usw.) Installieren Sie einen Agenten auf der Überwachungsseite und senden Sie Informationen an den Überwachungsserver.

Im Gegensatz dazu erfasst der Pull-Typ Informationen von der Seite, die vom Überwachungsserver überwacht wird.

Verdienst und Fehler

Push-Typ

[verdienen] ・ Einfach durch Installieren der App auf dem Überwachungsziel -Es gibt nur wenige Änderungen an den Servereinstellungen, selbst wenn die Anzahl der Überwachungsziele zunimmt.

[Fehler] ・ Wenn der Überwachungsaufwand zunimmt, steigt die Belastung des Überwachungsservers.

Typ ziehen

[verdienen] ・ Es ist leichter zu erkennen, dass das Überwachungsziel unten ist als der Push-Typ. -Die Belastung des Überwachungsservers ist geringer als bei Push

[Fehler] -Sie müssen den zu überwachenden Endpunkt einstellen. Es ist nicht nur eine einfache Installation. ・ Wenn die Anzahl der Überwachungsziele zunimmt, muss dies jedes Mal festgelegt werden.

Dieses Ziel

Verknüpfen Sie in der Spring-Anwendung Daten mit Promethus. Mit Grafana schön anzeigen.

image.png

Verfahren

Erstellen Sie den Promethus-Endpunkt im Frühjahr

Spring Actuator von Spring Initializr [https://start.spring.io/] hinzugefügt. Spring Actuator kann Spring Dumps und Health Checks überprüfen.

image.png

Stellen Sie die Mikrometer-Registrierung Prometheus als Abhängigkeit ein. [ https://mvnrepository.com/artifact/io.micrometer/micrometer-registry-prometheus ]

Maven Repository:.png

Öffnen Sie den Endpunkt aus der Eigenschaftendatei.

application.properties


#Voll geöffnet
management.endpoints.web.exposure.include=*

Starten Sie die Anwendung und bestätigen Sie, dass der Endpunkt erstellt wurde.

http://localhost:8080/actuator/prometheus

Prometheus-Einstellungen

Kann mit der folgenden YML eingestellt werden

prometheus.yml



global:
  #Häufigkeit der Zielerfassung
  scrape_interval:     10s
  evaluation_interval: 10s

#Überwachen der Zieleinstellungen
scrape_configs:
  #Überwachungseinstellungen für Spring Boot App Exporter
  - job_name: 'springboot'
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['web:8080']
        labels:
          group: 'docker-springboot'

Starten Sie Prometheus / Grafana / App

Beginnen Sie mit 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"
Überprüfen Sie Prometheus

▼ Bildschirm zur Bestätigung des Überwachungsziels

http://54.238.228.193:9090/targets

image.png

▼ Grafikbestätigungsbildschirm

http://54.238.228.193:9090/graph

image.png

Die Grafik-Benutzeroberfläche ist jedoch nicht gut genug. Also sieh dir Grafana an.

Überprüfen Sie Grafana

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

▼ Wählen Sie eine Datenquelle aus

image.png

Stellen Sie die URL wie folgt ein

Prometheus.png

▼ Dashboard erstellen

Wählen Sie Abfrage hinzufügen

image.png

Stellen Sie es danach nach Ihren Wünschen ein

New dashboard.png

Andere beiseite

・ Promethuns-Endpunktklassen, die in Spring festgelegt wurden, können vererbt und angepasst werden.

・ Benachrichtigungseinstellungen können für Promethuns und Grafana schwierig sein

Recommended Posts

Einführung in die Überwachung von Java Touching Prometheus
[Java] Einführung in Java
Einführung in Java
Änderungen von Java 8 zu Java 11
Summe von Java_1 bis 100
Von Java zu Ruby !!
Einführung in den Java-Befehl
Neue Funktionen von Java7 bis Java8
Stellen Sie eine Verbindung von Java zu PostgreSQL her
[Java] Einführung in den Lambda-Ausdruck
[Java] Einführung in die Stream-API
Von ineffektivem Java zu effektivem Java
[Einführung in Janken (ähnliche) Spiele] Java
[Einführung in Java] Über Lambda-Ausdrücke
[Einführung in Java] Informationen zur Stream-API
Einführung in die funktionale Programmierung (Java, Javascript)
Java soll ab heute dabei sein
Einführung in Ruby (aus anderen Sprachen)
Erste Einführung in Mac (Java-Ingenieur)
Java, Schnittstelle für Anfänger
Von der Einführung bis zur Verwendung von byebug
Der Weg von JavaScript nach Java
[Java] Konvertierung von Array zu Liste
[Java] Einführung
Einführung in Scala aus Java-Perspektive (grundlegend)
Stapelstartüberwachung (Java x PushGateway x Prometheus)
Einführung in Java zum ersten Mal # 2
Einführung in Algorithmen mit Java-Suche (Tiefenprioritätssuche)
Konvertieren Sie von der Java-UTC-Zeit in die JST-Zeit
[Einführung in Java] So schreiben Sie ein Java-Programm
Stellen Sie mit Eclipse eine Verbindung von Java zu MySQL her
Deep Learning Java von Grund auf neu Kapitel 1 Einführung
Von der Installation von Eclipse bis zur Ausführung von Java (PHP)
Post to Slack von Play Framework 2.8 (Java)
Java: So senden Sie Werte von Servlet zu Servlet
[Java] Fluss vom Quellcode zur Ausführung
Ausgabe des Buches "Einführung in Java"
[Einführung in Java] Informationen zu Variablendeklarationen und -typen
Vorsichtsmaßnahmen bei der Migration von VB6.0 auf JAVA
Memo für die Migration von Java nach Kotlin
Typkonvertierung vom Java Big Decimal-Typ zum String-Typ
Einführung in Algorithmen mit Java --Search (Breitenprioritätssuche)
[Java] Ablauf von der Einführung von STS bis zur Bestätigung der dynamischen Seite auf dem lokalen Host (2/3)
[Java] Ablauf von der Einführung von STS bis zur Bestätigung der dynamischen Seite auf dem lokalen Host (1/3)
Einführung in Ruby 2
[Java] Von zwei Listen zu einer Array-Liste
Upsert von Java SDK zu Azure Cosmos DB
R von Java ausführen Ich möchte rJava ausführen
[Einführung in Java] Informationen zur Typkonvertierung (Besetzung, Promotion)
Einführung in Algorithmen mit Java --Search (Bit Full Search)
Stellen Sie über eine Java-Anwendung eine Verbindung zu Aurora (MySQL) her
Um ein VB.net-Programmierer aus einem Java-Shop zu werden
Migrieren Sie von Java zu Server Side Kotlin + Spring-Boot
Road to Java Engineer Teil 1 Einführung & Umgebungskonstruktion
[Monatlich 2017/04] Einführung in groovy !! ~ Java Grammatik / Spezifikationsvergleich ~
So erhalten Sie eine Klasse von Element in Java
Einführung in web3j