――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
--Push Gateway und Prometheus beginnen mit Docker ――Als Mechanismus --Batch sendet Metriken an Push Gateway --Prometheus erhält Metriken von Push Gateway
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
http: // localhost: 9091
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();
}
}
}
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
--Überprüfen Sie mit der Benutzeroberfläche (http: // localhost: 9090
)