Class PushGateway
Object
PushGateway
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();
}
}
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic PushGateway.Builderbuilder()static PushGateway.Builderbuilder(PrometheusProperties config) ThePrometheusPropertieswill be used to override what is set in thePushGateway.Builder.voiddelete()Deletes metrics from the Pushgateway.voidpush()Push all metrics.voidPush a single metric.voidpush(MultiCollector collector) Push a single collector.voidpushAdd()Likepush(), but only metrics with the same name as the newly pushed metrics are replaced.voidLikepush(Collector), but only the specified metric will be replaced.voidpushAdd(MultiCollector collector) Likepush(MultiCollector), but only the metrics from the collector will be replaced.
-
Method Details
-
push
Push all metrics. All metrics with the same job and grouping key are replaced.This uses the PUT HTTP method.
- Throws:
IOException
-
push
Push a single metric. All metrics with the same job and grouping key are replaced.This is useful for pushing a single Gauge.
This uses the PUT HTTP method.
- Throws:
IOException
-
push
Push a single collector. All metrics with the same job and grouping key are replaced.This uses the PUT HTTP method.
- Throws:
IOException
-
pushAdd
Likepush(), but only metrics with the same name as the newly pushed metrics are replaced.This uses the POST HTTP method.
- Throws:
IOException
-
pushAdd
Likepush(Collector), but only the specified metric will be replaced.This uses the POST HTTP method.
- Throws:
IOException
-
pushAdd
Likepush(MultiCollector), but only the metrics from the collector will be replaced.This uses the POST HTTP method.
- Throws:
IOException
-
delete
Deletes metrics from the Pushgateway.This uses the DELETE HTTP method.
- Throws:
IOException
-
builder
-
builder
ThePrometheusPropertieswill be used to override what is set in thePushGateway.Builder.
-