summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@verizonmedia.com>2019-07-17 10:33:47 +0200
committerGitHub <noreply@github.com>2019-07-17 10:33:47 +0200
commitc183d42c7255bab7c9d05d5a87bcbd4646761c32 (patch)
tree0daa9885cf3bc3f3984b40a613bb59cd0f622286 /controller-api
parent8f62c7d636a04c0b2e18b735548f76cfedc813ae (diff)
parent7eaaa6eb110da07a2d0e01b0e29183043e7fcddd (diff)
Merge pull request #9396 from vespa-engine/olaa/cfg-server-metric-aggregation
olaa/cfg server metric aggregation
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/ClusterMetrics.java40
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java3
2 files changed, 43 insertions, 0 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/ClusterMetrics.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/ClusterMetrics.java
new file mode 100644
index 00000000000..1377a333335
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/application/v4/model/ClusterMetrics.java
@@ -0,0 +1,40 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.api.application.v4.model;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author olaa
+ */
+public class ClusterMetrics {
+
+ private final String clusterId;
+ private final ClusterType clusterType;
+ private final Map<String, Double> metrics;
+
+ public ClusterMetrics(String clusterId, ClusterType clusterType) {
+ this.clusterId = clusterId;
+ this.clusterType = clusterType;
+ this.metrics = new HashMap<>();
+ }
+
+ public String getClusterId() {
+ return clusterId;
+ }
+
+ public ClusterType getClusterType() {
+ return clusterType;
+ }
+
+ public Map<String, Double> getMetrics() {
+ return Collections.unmodifiableMap(metrics);
+ }
+
+ public void addMetric(String name, double value) {
+ metrics.put(name, value);
+ }
+
+ public enum ClusterType {content, container};
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
index 9eae2965c45..688cf275892 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/ConfigServer.java
@@ -6,6 +6,7 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions;
import com.yahoo.vespa.hosted.controller.api.application.v4.model.EndpointStatus;
+import com.yahoo.vespa.hosted.controller.api.application.v4.model.ClusterMetrics;
import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.identifiers.Hostname;
import com.yahoo.vespa.hosted.controller.api.integration.certificates.ApplicationCertificate;
@@ -44,6 +45,8 @@ public interface ConfigServer {
InputStream getLogs(DeploymentId deployment, Map<String, String> queryParameters);
+ List<ClusterMetrics> getMetrics(DeploymentId deployment);
+
List<String> getContentClusters(DeploymentId deployment);
/**