――Lorsque je me demandais quoi faire avec la surveillance du démarrage par lots, j'ai trouvé quelque chose appelé Push Gateway. ――J'ai essayé de résumer de l'introduction à l'endroit où vous pouvez voir les métriques dans Prometheus
--Push Gateway et Prometheus démarrent avec Docker ――En tant que mécanisme --Batch envoie des métriques à Push Gateway
docker pull prom/pushgateway
docker run -d \
-p 9091:9091 \
--name pushgateway \
prom/pushgateway
-d: démarrer en mode détaché. Je ne suis pas très familier avec cela, donc il est reconnu qu'il peut être exécuté en arrière-plan -p: paramètres de transfert de port -name: spécifiez le nom du conteneur
--Accès http: // localhost: 9091
/ metrics
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();
//Collecter les métriques (ici définir la milliseconde système comme temps de démarrage)
CollectorRegistry registry = new CollectorRegistry();
Gauge lastStartAt = Gauge.build()
.name("batch_start_time")
.help("batch start time")
.register(registry);
lastStartAt.set(now);
//Définir des balises pour les métriques
Map<String, String> key = new HashMap<>();
key.put("tagName", "tagValue");
try {
//Enregistrer les métriques
pushGateway.pushAdd(registry, "sample-batch", key);
} catch (IOException e) {
//Gestion des exceptions
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
--Vérifier avec l'interface utilisateur (http: // localhost: 9090
)
--Il semble y avoir un meilleur moyen, mais vous pouvez voir quand le lot a démarré avec PromQL appelé changes (batch_start_time [2m])
!