diff options
author | andreer <andreer@verizonmedia.com> | 2020-04-07 15:35:45 +0200 |
---|---|---|
committer | andreer <andreer@verizonmedia.com> | 2020-04-07 15:35:45 +0200 |
commit | 91e1acc381fc8f141d3efcc6de1a6d795cf85aba (patch) | |
tree | 2ab4f8db45331820b07abaf879db38069c80b779 /controller-server | |
parent | 5a8ca01510284386dac769e80222ee7e79dfd5ad (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.java | 10 |
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(); |