summaryrefslogtreecommitdiffstats
path: root/orchestrator/src/main
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2019-10-22 07:59:05 +0200
committerGitHub <noreply@github.com>2019-10-22 07:59:05 +0200
commit3889e10589b3809b69623c56434224971fb4b9c6 (patch)
tree55b5ced462425ab04497eeea55fa507f81c18767 /orchestrator/src/main
parent9837e9b7ff4b7541db0caede471bf418f3ded02a (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.java60
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) {