summaryrefslogtreecommitdiffstats
path: root/orchestrator
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2020-10-01 14:00:27 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2020-10-01 14:00:27 +0200
commitafc338edf9af92e0582a00d20a19eafa1411e515 (patch)
tree003b12b362655a97dd933e9aa1c21413eb47f68a /orchestrator
parent430f72a630a997b6d13bb5870e843d72db6982d4 (diff)
Add metrics to lock attempts
Diffstat (limited to 'orchestrator')
-rw-r--r--orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java6
-rw-r--r--orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java20
2 files changed, 5 insertions, 21 deletions
diff --git a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java
index 32fdaa9433d..387fda8ad84 100644
--- a/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java
+++ b/orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java
@@ -6,7 +6,6 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.container.jaxrs.annotation.Component;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.Timer;
-import java.util.logging.Level;
import com.yahoo.path.Path;
import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
import com.yahoo.vespa.applicationmodel.HostName;
@@ -23,9 +22,11 @@ import java.time.Duration;
import java.time.Instant;
import java.util.HashSet;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
+import java.util.logging.Level;
import java.util.logging.Logger;
/**
@@ -168,7 +169,7 @@ public class ZkStatusService implements StatusService {
Duration duration = context.getTimeLeft();
String lockPath = applicationInstanceLock2Path(reference);
- Lock lock = new Lock(lockPath, curator);
+ Lock lock = new Lock(lockPath, curator, Optional.of(metric));
Instant startTime = timer.currentTime();
Instant acquireEndTime;
@@ -179,6 +180,7 @@ public class ZkStatusService implements StatusService {
} finally {
acquireEndTime = timer.currentTime();
double seconds = durationInSeconds(startTime, acquireEndTime);
+ // TODO: These metrics are redundant with Lock's metrics
metric.set("orchestrator.lock.acquire-latency", seconds, metricContext);
metric.set("orchestrator.lock.acquired", lockAcquired ? 1 : 0, metricContext);
diff --git a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java
index 02c336e4109..230290a632a 100644
--- a/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java
+++ b/orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java
@@ -6,19 +6,16 @@ import com.yahoo.exception.ExceptionUtils;
import com.yahoo.jdisc.Metric;
import com.yahoo.jdisc.Timer;
import com.yahoo.jdisc.test.TestTimer;
-import java.util.logging.Level;
import com.yahoo.test.ManualClock;
import com.yahoo.vespa.applicationmodel.ApplicationInstanceReference;
import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.curator.Curator;
-import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.orchestrator.OrchestratorContext;
import com.yahoo.vespa.orchestrator.OrchestratorUtil;
import com.yahoo.vespa.orchestrator.TestIds;
import com.yahoo.vespa.service.monitor.AntiServiceMonitor;
import com.yahoo.vespa.service.monitor.CriticalRegion;
-import com.yahoo.vespa.service.monitor.ServiceMonitor;
import com.yahoo.yolean.Exceptions;
import org.apache.curator.framework.CuratorFramework;
import org.apache.curator.test.KillSession;
@@ -49,6 +46,7 @@ import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
+import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -59,7 +57,6 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@@ -137,21 +134,6 @@ public class ZkStatusServiceTest {
}
}
}
-
- // Time
- // 1 Start before lock
- // 3 After acquire => orchestrator.lock.acquire-latency = 3ms - 1ms
- // 6 After release => orchestrator.lock.hold-latency = 6ms - 3ms
- verify(metric).set(eq("orchestrator.lock.acquire-latency"), eq(0.002), any());
- verify(metric).set(eq("orchestrator.lock.acquired"), eq(1), any());
- verify(metric).set(eq("orchestrator.lock.hold-latency"), eq(0.003), any());
- verify(metric).createContext(captor.capture());
-
- assertEquals(
- Map.of("app", "test-application.test-instance-key",
- "tenantName", "test-tenant",
- "applicationId", "test-tenant.test-application.test-instance-key"),
- captor.getValue());
}
@Test