diff options
Diffstat (limited to 'clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java')
-rw-r--r-- | clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java index e007e2cc243..1404508e2fe 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/restapiv2/requests/NodeStateRequest.java @@ -3,6 +3,7 @@ package com.yahoo.vespa.clustercontroller.core.restapiv2.requests; import com.yahoo.vespa.clustercontroller.core.NodeInfo; import com.yahoo.vespa.clustercontroller.core.RemoteClusterControllerTask; +import com.yahoo.vespa.clustercontroller.core.hostinfo.Metrics; import com.yahoo.vespa.clustercontroller.core.restapiv2.Id; import com.yahoo.vespa.clustercontroller.core.restapiv2.Request; import com.yahoo.vespa.clustercontroller.core.restapiv2.Response; @@ -32,7 +33,34 @@ public class NodeStateRequest extends Request<Response.NodeResponse> { result.addState("generated", new Response.UnitStateImpl(context.currentConsolidatedState.getNodeState(id.getNode()))); result.addState("unit", new Response.UnitStateImpl(info.getReportedState())); result.addState("user", new Response.UnitStateImpl(info.getWantedState())); + if (info.isStorage()) { + fillInMetrics(context.cluster.getNodeInfo(id.getNode()).getHostInfo().getMetrics(), result); + } return result; } + private static void fillInMetrics(Metrics metrics, Response.NodeResponse result) { + for (Metrics.Metric metric: metrics.getMetrics()) { + fillInMetricValue(metric.getName(), metric.getValue(), result); + } + } + + private static void fillInMetricValue(String name, Metrics.Value value, Response.NodeResponse result) { + if (name.equals("vds.datastored.alldisks.docs")) { + if (value.getLast() == null) { + return; + } + result.addMetric("unique-document-count", value.getLast()); + } else if (name.equals("vds.datastored.alldisks.bytes")) { + if (value.getLast() == null) { + return; + } + result.addMetric("unique-document-total-size", value.getLast()); + } else if (name.equals("vds.datastored.alldisks.buckets")) { + if (value.getLast() == null) { + return; + } + result.addMetric("bucket-count", value.getLast()); + } + } } |