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
-
Method Summary
Modifier and TypeMethodDescriptionstatic PushGateway.Builder
builder()
static PushGateway.Builder
builder
(PrometheusProperties config) ThePrometheusProperties
will be used to override what is set in thePushGateway.Builder
.void
delete()
Deletes metrics from the Pushgateway.void
push()
Push all metrics.void
Push a single metric.void
push
(MultiCollector collector) Push a single collector.void
pushAdd()
Likepush()
, but only metrics with the same name as the newly pushed metrics are replaced.void
Likepush(Collector)
, but only the specified metric will be replaced.void
pushAdd
(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
ThePrometheusProperties
will be used to override what is set in thePushGateway.Builder
.
-