Surveillance du démarrage par lots (Java x PushGateway x Prometheus)

Résumé de cet article

――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

Constitution

image.png

--Push Gateway et Prometheus démarrent avec Docker ――En tant que mécanisme --Batch envoie des métriques à Push Gateway

Construction de la passerelle Push

Commencez

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

Contrôle de fonctionnement

--Accès http: // localhost: 9091 スクリーンショット 2019-09-21 22.14.29.png

Créer un lot (divers)

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();
        }
    }
}

Courir!

Construire Prométhée

Commencez

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

Contrôle de fonctionnement

--Vérifier avec l'interface utilisateur (http: // localhost: 9090) スクリーンショット 2019-09-21 23.22.13.png --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])!

Fonctionnement réel

Recommended Posts

Surveillance du démarrage par lots (Java x PushGateway x Prometheus)
Introduction à la surveillance à partir de Java Touching Prometheus
Sélénium x Java