diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-10-01 14:00:27 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2020-10-01 14:00:27 +0200 |
commit | afc338edf9af92e0582a00d20a19eafa1411e515 (patch) | |
tree | 003b12b362655a97dd933e9aa1c21413eb47f68a /orchestrator | |
parent | 430f72a630a997b6d13bb5870e843d72db6982d4 (diff) |
Add metrics to lock attempts
Diffstat (limited to 'orchestrator')
-rw-r--r-- | orchestrator/src/main/java/com/yahoo/vespa/orchestrator/status/ZkStatusService.java | 6 | ||||
-rw-r--r-- | orchestrator/src/test/java/com/yahoo/vespa/orchestrator/status/ZkStatusServiceTest.java | 20 |
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 |