diff options
author | Harald Musum <musum@verizonmedia.com> | 2019-10-22 07:59:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-22 07:59:05 +0200 |
commit | 3889e10589b3809b69623c56434224971fb4b9c6 (patch) | |
tree | 55b5ced462425ab04497eeea55fa507f81c18767 /orchestrator/src/main | |
parent | 9837e9b7ff4b7541db0caede471bf418f3ded02a (diff) |
Revert "Add Orchestrator application lock metrics"
Diffstat (limited to 'orchestrator/src/main')
-rw-r--r-- | orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZookeeperStatusService.java | 60 |
1 files changed, 6 insertions, 54 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZookeeperStatusService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZookeeperStatusService.java index 65bdaed86b8..e3d2a0827ed 100644 --- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZookeeperStatusService.java +++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZookeeperStatusService.java @@ -2,10 +2,7 @@ package com.yahoo.vespa.orchestrator.status; import com.google.common.util.concurrent.UncheckedTimeoutException; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.container.jaxrs.annotation.Component; -import com.yahoo.jdisc.Metric; -import com.yahoo.jdisc.Timer; import com.yahoo.log.LogLevel; import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference; import com.yahoo.vespa.applicationmodel.HostName; @@ -20,7 +17,6 @@ import org.apache.zookeeper.data.Stat; import javax.inject.Inject; import java.time.Duration; -import java.time.Instant; import java.util.Collections; import java.util.HashSet; import java.util.Map; @@ -46,27 +42,18 @@ public class ZookeeperStatusService implements StatusService { private final Curator curator; private final CuratorCounter counter; - private final Metric metric; - private final Timer timer; - - /** - * A cache of metric contexts for each possible dimension map. In practice, there is one dimension map - * for each application, so up to hundreds of elements. - */ - private final ConcurrentHashMap<Map<String, String>, Metric.Context> cachedContexts = new ConcurrentHashMap<>(); /** A cache of hosts allowed to be down. Access only through {@link #getValidCache()}! */ - private final Map<ApplicationInstanceReference, Set<HostName>> hostsDown = new ConcurrentHashMap<>(); + private final Map<ApplicationInstanceReference, Set<HostName>> hostsDown; private volatile long cacheRefreshedAt; @Inject - public ZookeeperStatusService(@Component Curator curator, @Component Metric metric, @Component Timer timer) { + public ZookeeperStatusService(@Component Curator curator) { this.curator = curator; this.counter = new CuratorCounter(curator, HOST_STATUS_CACHE_COUNTER_PATH); this.cacheRefreshedAt = counter.get(); - this.metric = metric; - this.timer = timer; + this.hostsDown = new ConcurrentHashMap<>(); } @Override @@ -117,51 +104,20 @@ public class ZookeeperStatusService implements StatusService { public MutableStatusRegistry lockApplicationInstance_forCurrentThreadOnly( OrchestratorContext context, ApplicationInstanceReference applicationInstanceReference) throws UncheckedTimeoutException { - ApplicationId applicationId = OrchestratorUtil.toApplicationId(applicationInstanceReference); - String app = applicationId.application().value() + "." + applicationId.instance().value(); - Map<String, String> dimensions = Map.of( - "tenantName", applicationId.tenant().value(), - "applicationId", applicationId.toFullString(), - "app", app); - Metric.Context metricContext = cachedContexts.computeIfAbsent(dimensions, metric::createContext); - Duration duration = context.getTimeLeft(); String lockPath = applicationInstanceLock2Path(applicationInstanceReference); Lock lock = new Lock(lockPath, curator); - - Instant startTime = timer.currentTime(); - Instant acquireEndTime; - boolean lockAcquired = false; - try { - lock.acquire(duration); - lockAcquired = true; - } finally { - acquireEndTime = timer.currentTime(); - double seconds = durationInSeconds(startTime, acquireEndTime); - metric.set("orchestrator.lock.acquire-latency", seconds, metricContext); - metric.set("orchestrator.lock.acquired", lockAcquired ? 1 : 0, metricContext); - } - - Runnable updateLockHoldMetric = () -> { - Instant lockReleasedTime = timer.currentTime(); - double seconds = durationInSeconds(acquireEndTime, lockReleasedTime); - metric.set("orchestrator.lock.hold-latency", seconds, metricContext); - }; + lock.acquire(duration); try { - return new ZkMutableStatusRegistry(lock, applicationInstanceReference, context.isProbe(), updateLockHoldMetric); + return new ZkMutableStatusRegistry(lock, applicationInstanceReference, context.isProbe()); } catch (Throwable t) { // In case the constructor throws an exception. - updateLockHoldMetric.run(); lock.close(); throw t; } } - private double durationInSeconds(Instant startInstant, Instant endInstant) { - return Duration.between(startInstant, endInstant).toMillis() / 1000.0; - } - private void setHostStatus(ApplicationInstanceReference applicationInstanceReference, HostName hostName, HostStatus status) { @@ -281,16 +237,13 @@ public class ZookeeperStatusService implements StatusService { private final Lock lock; private final ApplicationInstanceReference applicationInstanceReference; private final boolean probe; - private final Runnable onLockRelease; public ZkMutableStatusRegistry(Lock lock, ApplicationInstanceReference applicationInstanceReference, - boolean probe, - Runnable onLockRelease) { + boolean probe) { this.lock = lock; this.applicationInstanceReference = applicationInstanceReference; this.probe = probe; - this.onLockRelease = onLockRelease; } @Override @@ -340,7 +293,6 @@ public class ZookeeperStatusService implements StatusService { @Override public void close() { - onLockRelease.run(); try { lock.close(); } catch (RuntimeException e) { |