diff options
author | andreer <andreer@verizonmedia.com> | 2021-04-09 12:41:47 +0200 |
---|---|---|
committer | andreer <andreer@verizonmedia.com> | 2021-04-09 12:41:47 +0200 |
commit | 93ed895d6b945a120d91893d86a2c4c05f5e544f (patch) | |
tree | b035551350ede356279521db6b8378b79fdc42fe /controller-server | |
parent | b8af226410e48acc742506eed84be507a5e6956b (diff) |
report count per zone
Diffstat (limited to 'controller-server')
2 files changed, 14 insertions, 9 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java index 6b1e16ba84a..97385da468b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainer.java @@ -11,7 +11,6 @@ import com.yahoo.vespa.hosted.controller.tenant.CloudTenant; import com.yahoo.vespa.hosted.controller.tenant.Tenant; import java.time.Duration; -import java.util.Collection; import java.util.Map; import java.util.stream.Collectors; @@ -41,12 +40,9 @@ public class ArchiveAccessMaintainer extends ControllerMaintainer { protected boolean maintain() { // Count buckets - so we can alert if we get close to the account limit of 1000 - metric.add(bucketCountMetricName, - zoneRegistry.zones().all().ids().stream() - .map(archiveBucketDb::buckets) - .mapToLong(Collection::size) - .sum(), - metric.createContext(Map.of())); + zoneRegistry.zones().all().ids().forEach(zoneId -> + metric.set(bucketCountMetricName, archiveBucketDb.buckets(zoneId).size(), + metric.createContext(Map.of("zone", zoneId.value())))); var tenantArchiveAccessRoles = controller().tenants().asList().stream() .filter(t -> t instanceof CloudTenant) diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java index de51db16ae6..56247b04ac6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/ArchiveAccessMaintainerTest.java @@ -19,6 +19,7 @@ import org.junit.Test; import java.time.Duration; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -41,7 +42,8 @@ public class ArchiveAccessMaintainerTest extends ControllerContainerCloudTest { var tenant1 = createTenantWithAccessRole(tester, "tenant1", tenant1role); createTenantWithAccessRole(tester, "tenant2", tenant2role); - tester.controller().archiveBucketDb().archiveUriFor(ZoneId.from("prod.us-east-3"), tenant1); + ZoneId testZone = ZoneId.from("prod.us-east-3"); + tester.controller().archiveBucketDb().archiveUriFor(testZone, tenant1); var testBucket = new ArchiveBucket("bucketName", "keyArn").withTenant(tenant1); MockArchiveService archiveService = (MockArchiveService) tester.controller().serviceRegistry().archiveService(); @@ -49,7 +51,14 @@ public class ArchiveAccessMaintainerTest extends ControllerContainerCloudTest { MockMetric metric = new MockMetric(); new ArchiveAccessMaintainer(containerTester.controller(), metric, Duration.ofMinutes(10)).maintain(); assertEquals(Map.of(tenant1, tenant1role), archiveService.authorizedIamRoles.get(testBucket)); - assertEquals(Map.of("archive.bucketCount", Map.of(Map.of(), 1d)), metric.metrics()); + + var expected = Map.of("archive.bucketCount", + tester.controller().zoneRegistry().zones().all().ids().stream() + .collect(Collectors.toMap( + zone -> Map.of("zone", zone.value()), + zone -> zone.equals(testZone) ? 1d : 0d))); + + assertEquals(expected, metric.metrics()); } private TenantName createTenantWithAccessRole(ControllerTester tester, String tenantName, String role) { |