Align PushGatewayManager's exception handling with PushMeterRegistry's

Previously, would log an error for any exception and also stop
publishing for an UnknownHostException. By constrast, Micrometer's
PushMeterRegistry treats all exceptions the same, logging a warning
and continuing with subsequent push attempts.

This commit updates the push gateway manager's behaviour to match
PushMeterRegistry. UknownHostExceptions no longer receive special
treatment and push (and delete) failures are now logged as warnings
rather than errors.

Fixes gh-25804
This commit is contained in:
Andy Wilkinson
2021-03-31 17:01:08 +01:00
parent da9d8d6055
commit 1a84b0610e
2 changed files with 4 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
package org.springframework.boot.actuate.metrics.export.prometheus;
import java.net.UnknownHostException;
import java.time.Duration;
import java.util.Collections;
import java.util.Map;
@@ -165,17 +164,6 @@ class PrometheusPushGatewayManagerTests {
verifyNoInteractions(this.pushGateway);
}
@Test
void pushWhenUnknownHostExceptionIsThrownDoesShutdown() throws Exception {
new PrometheusPushGatewayManager(this.pushGateway, this.registry, this.scheduler, this.pushRate, "job",
this.groupingKey, null);
verify(this.scheduler).scheduleAtFixedRate(this.task.capture(), eq(this.pushRate));
willThrow(new UnknownHostException("foo")).given(this.pushGateway).pushAdd(this.registry, "job",
this.groupingKey);
this.task.getValue().run();
verify(this.future).cancel(false);
}
@Test
void pushDoesNotThrowException() throws Exception {
new PrometheusPushGatewayManager(this.pushGateway, this.registry, this.scheduler, this.pushRate, "job",