Class PushGateway

Object
PushGateway

public class PushGateway extends Object
Export metrics via the Prometheus Pushgateway

The Prometheus Pushgateway exists to allow ephemeral and batch jobs to expose their metrics to Prometheus. Since these kinds of jobs may not exist long enough to be scraped, they can instead push their metrics to a Pushgateway. This Java class allows pushing the contents of a PrometheusRegistry to a Pushgateway.

Example usage:


 void executeBatchJob() throws Exception {
     PrometheusRegistry registry = new PrometheusRegistry();
     Gauge duration = Gauge.builder()
             .name("my_batch_job_duration_seconds")
             .help("Duration of my batch job in seconds.")
             .register(registry);
     Timer durationTimer = duration.startTimer();
     try {
         // Your code here.

         // This is only added to the registry after success,
         // so that a previous success in the Pushgateway isn't overwritten on failure.
         Gauge lastSuccess = Gauge.builder()
                 .name("my_batch_job_last_success")
                 .help("Last time my batch job succeeded, in unixtime.")
                 .register(registry);
         lastSuccess.set(System.currentTimeMillis());
     } finally {
         durationTimer.observeDuration();
         PushGateway pg = PushGateway.builder()
                 .address("127.0.0.1:9091")
                 .job("my_batch_job")
                 .registry(registry)
                 .build();
         pg.pushAdd();
     }
 }
 

See https://github.com/prometheus/pushgateway.