Stapelstartüberwachung (Java x PushGateway x Prometheus)

Zusammenfassung dieses Artikels

――Wenn ich mich fragte, was ich mit der Überwachung des Batch-Starts tun sollte, fand ich etwas namens Push Gateway. ――Ich habe versucht, von der Einführung bis zu dem Ort, an dem Sie die Metriken in Prometheus sehen können, zusammenzufassen

Verfassung

image.png

--Push Gateway und Prometheus beginnen mit Docker ――Als Mechanismus --Batch sendet Metriken an Push Gateway --Prometheus erhält Metriken von Push Gateway

Push-Gateway-Konstruktion

Anlaufen

docker pull prom/pushgateway
docker run -d \
    -p 9091:9091 \
    --name pushgateway \
    prom/pushgateway

-d: Start im getrennten Modus. Ich bin nicht sehr vertraut damit, daher wird erkannt, dass es im Hintergrund ausgeführt werden kann -p: Einstellungen für die Portweiterleitung -name: Geben Sie den Containernamen an

Funktionsprüfung

Stapel erstellen (Sonstiges)

build.gradle


apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile('io.prometheus:simpleclient_pushgateway:0.6.0')
}

SampleBatch.java


import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class SampleBatch {
    public static void main(String[] args) {
        String url = "localhost:9091";
        PushGateway pushGateway = new PushGateway(url);

        long now = System.currentTimeMillis();

        //Sammeln Sie Metriken (hier stellen Sie die Systemmillisekunde als Startzeit ein)
        CollectorRegistry registry = new CollectorRegistry();
        Gauge lastStartAt = Gauge.build()
                .name("batch_start_time")
                .help("batch start time")
                .register(registry);
        lastStartAt.set(now);

        //Setzen Sie Tags für Metriken
        Map<String, String> key = new HashMap<>();
        key.put("tagName", "tagValue");

        try {
            //Registrieren Sie Metriken
            pushGateway.pushAdd(registry, "sample-batch", key);
        } catch (IOException e) {
            //Ausnahmebehandlung
            e.printStackTrace();
        }
    }
}

Lauf!

Baue Prometheus

Anlaufen

prometheus.yml


# /etc/prometheus/prometheus.yml

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.
alerting:
  alertmanagers:
  - static_configs:
    - targets:

rule_files:

scrape_configs:
- job_name: 'pushgateway'
  scrape_interval: 1m
  metrics_path: /metrics
  static_configs:
  - targets: ['localhost:9091']

docker pull prom/prometheus
docker run -d \
  -p 9090:9090 \
  -v prometheus.yml:/etc/prometheus/prometheus.yml \
  --name prometheus \
  prom/prometheus

Funktionsprüfung

--Überprüfen Sie mit der Benutzeroberfläche (http: // localhost: 9090) スクリーンショット 2019-09-21 23.22.13.png

Tatsächlicher Betrieb

Recommended Posts

Stapelstartüberwachung (Java x PushGateway x Prometheus)
Einführung in die Überwachung von Java Touching Prometheus
Selen x Java