summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorandreer <andreer@verizonmedia.com>2020-04-07 15:35:45 +0200
committerandreer <andreer@verizonmedia.com>2020-04-07 15:35:45 +0200
commit91e1acc381fc8f141d3efcc6de1a6d795cf85aba (patch)
tree2ab4f8db45331820b07abaf879db38069c80b779 /controller-server
parent5a8ca01510284386dac769e80222ee7e79dfd5ad (diff)
log if getting endpoint cert metadata is very slow
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificateManager.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificateManager.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificateManager.java
index a3d90e423f8..4cb62892555 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificateManager.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/certificate/EndpointCertificateManager.java
@@ -26,10 +26,12 @@ import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneRegistry;
import com.yahoo.vespa.hosted.controller.application.Endpoint;
import com.yahoo.vespa.hosted.controller.application.EndpointId;
import com.yahoo.vespa.hosted.controller.persistence.CuratorDb;
+import org.jetbrains.annotations.NotNull;
import java.nio.charset.Charset;
import java.security.cert.X509Certificate;
import java.time.Clock;
+import java.time.Duration;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Collections;
@@ -90,7 +92,15 @@ public class EndpointCertificateManager {
}
public Optional<EndpointCertificateMetadata> getEndpointCertificateMetadata(Instance instance, ZoneId zone) {
+ var t0 = Instant.now();
+ Optional<EndpointCertificateMetadata> metadata = getOrProvision(instance, zone);
+ Duration duration = Duration.between(t0, Instant.now());
+ if (duration.toSeconds() > 30) log.log(LogLevel.INFO, String.format("Getting endpoint certificate metadata for %s took %d seconds!", instance.id().serializedForm(), duration.toSeconds()));
+ return metadata;
+ }
+ @NotNull
+ private Optional<EndpointCertificateMetadata> getOrProvision(Instance instance, ZoneId zone) {
boolean endpointCertInSharedRouting = this.endpointCertInSharedRouting.with(FetchVector.Dimension.APPLICATION_ID, instance.id().serializedForm()).value();
if (!zoneRegistry.zones().directlyRouted().ids().contains(zone) && !endpointCertInSharedRouting)
return Optional.empty();