diff options
author | Jon Bratseth <bratseth@verizonmedia.com> | 2019-09-07 16:04:09 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@verizonmedia.com> | 2019-09-07 16:04:09 +0200 |
commit | 6566175df8d1f99fb9476df3ba5cc121f9f605c9 (patch) | |
tree | 29e5dffbc190e1f84166130ede7519b834c46e25 /controller-server | |
parent | a439476f948f52a57485f5e7700b17bf9aa73417 (diff) |
Meter all allocated nodes
Diffstat (limited to 'controller-server')
3 files changed, 16 insertions, 13 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/AwsEventReporterMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/AwsEventReporterMaintainer.java index 12bee2a7954..9a8adadd56e 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/AwsEventReporterMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/AwsEventReporterMaintainer.java @@ -16,10 +16,12 @@ import java.util.logging.Logger; import java.util.stream.Collectors; /** + * Automatically fetches scheduled events from AWS and submits issues detailing them. + * * @author mgimle - * Automatically fetches scheduled events from AWS and submits issues detailing them to Jira. */ public class AwsEventReporterMaintainer extends Maintainer { + private static final Logger log = Logger.getLogger(AwsEventReporterMaintainer.class.getName()); private final IssueHandler issueHandler; @@ -53,4 +55,5 @@ public class AwsEventReporterMaintainer extends Maintainer { } } } + } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/BillingMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/BillingMaintainer.java index c6956293adf..466a79b99dc 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/BillingMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/BillingMaintainer.java @@ -29,11 +29,12 @@ public class BillingMaintainer extends Maintainer { .map(tenant -> (CloudTenant) tenant) .forEach(cloudTenant -> controller().applications().asList(cloudTenant.name()) .stream() - .forEach( application -> { + .forEach(application -> { billing.handleBilling(application.id(), cloudTenant.billingInfo().customerId()); }) ); } + } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java index 8dba0a3e813..098bac0c72c 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/ResourceMeterMaintainer.java @@ -47,33 +47,32 @@ public class ResourceMeterMaintainer extends Maintainer { @Override protected void maintain() { - List<Node> nodes = getNodes(); - List<ResourceSnapshot> resourceSnapshots = getResourceSnapshots(nodes); + List<ResourceSnapshot> resourceSnapshots = getResourceSnapshots(allocatedNodes()); meteringClient.consume(resourceSnapshots); metric.set(METERING_LAST_REPORTED, clock.millis() / 1000, metric.createContext(Collections.emptyMap())); - metric.set(METERING_TOTAL_REPORTED, resourceSnapshots.stream() - .mapToDouble(r -> r.getCpuCores() + r.getMemoryGb() + r.getDiskGb()) // total metered resource usage, for alerting on drastic changes - .sum() - , metric.createContext(Collections.emptyMap())); + // total metered resource usage, for alerting on drastic changes + metric.set(METERING_TOTAL_REPORTED, + resourceSnapshots.stream().mapToDouble(r -> r.getCpuCores() + r.getMemoryGb() + r.getDiskGb()).sum(), + metric.createContext(Collections.emptyMap())); } - private List<Node> getNodes() { + private List<Node> allocatedNodes() { return controller().zoneRegistry().zones() .ofCloud(CloudName.from("aws")) .reachable().zones().stream() .flatMap(zone -> nodeRepository.list(zone.getId()).stream()) - .filter(node -> node.owner().isPresent() && !node.owner().get().tenant().value().equals("hosted-vespa")) - .filter(node -> node.state() == Node.State.active) + .filter(node -> node.owner().isPresent()) + .filter(node -> ! node.owner().get().tenant().value().equals("hosted-vespa")) .collect(Collectors.toList()); } private List<ResourceSnapshot> getResourceSnapshots(List<Node> nodes) { return new ArrayList<>(nodes.stream() - .filter(node -> node.owner().isPresent()) .collect(Collectors.groupingBy(node -> node.owner().get(), - Collectors.collectingAndThen(Collectors.toList(), nodeList -> ResourceSnapshot.from(nodeList, clock.instant())) + Collectors.collectingAndThen(Collectors.toList(), + nodeList -> ResourceSnapshot.from(nodeList, clock.instant())) )).values()); } |