summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2016-10-21 12:41:23 +0200
committerfreva <valerijf@yahoo-inc.com>2016-10-21 12:41:23 +0200
commit973f49a7f2d7eb970a4da379433c97aaa86cbd41 (patch)
treeb0ed2f7b6a9a9a17f3dff5ae3a475511bf41761b /node-admin
parent4696635291d8168bdbe501d836dfd3ea36c49333 (diff)
Add routing to metrics output, add zone and parentHostname to dimensions
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java15
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java6
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java1
-rw-r--r--node-admin/src/test/resources/docker.stats.metrics.expected.json31
4 files changed, 41 insertions, 12 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index be70dfeb0e6..f434e325a84 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.node.admin.nodeagent;
+import com.yahoo.net.HostName;
import com.yahoo.vespa.hosted.dockerapi.Container;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.dockerapi.Docker;
@@ -85,6 +86,7 @@ public class NodeAgentImpl implements NodeAgent {
private NodeAttributes lastAttributesSet = null;
ContainerNodeSpec lastNodeSpec = null;
CpuUsageReporter lastCpuMetric = new CpuUsageReporter();
+ String parentHostname;
public NodeAgentImpl(
final String hostName,
@@ -105,6 +107,7 @@ public class NodeAgentImpl implements NodeAgent {
this.metricReceiver = metricReceiver;
this.environment = environment;
this.maintainer = maintainer;
+ this.parentHostname = HostName.getLocalhost();
}
@Override
@@ -471,12 +474,14 @@ public class NodeAgentImpl implements NodeAgent {
.add("host", hostname)
.add("role", "tenants")
.add("flavor", nodeSpec.nodeFlavor)
- .add("state", nodeSpec.nodeState.toString());
+ .add("state", nodeSpec.nodeState.toString())
+ .add("zone", environment.getZone())
+ .add("parentHostname", parentHostname);
if (nodeSpec.owner.isPresent()) {
dimensionsBuilder
.add("tenantName", nodeSpec.owner.get().tenant)
- .add("app", nodeSpec.owner.get().application);
+ .add("app", nodeSpec.owner.get().application + "." + nodeSpec.owner.get().instance);
}
if (nodeSpec.membership.isPresent()) {
dimensionsBuilder
@@ -542,14 +547,16 @@ public class NodeAgentImpl implements NodeAgent {
Path vespaCheckPath = Paths.get(getDefaults().underVespaHome("libexec/yms/yms_check_vespa"));
SecretAgentScheduleMaker scheduleMaker = new SecretAgentScheduleMaker("vespa", 60, vespaCheckPath, "all")
+ .withTag("namespace", "Vespa")
.withTag("role", "tenants")
.withTag("flavor", nodeSpec.nodeFlavor)
.withTag("state", nodeSpec.nodeState.toString())
- .withTag("zone", environment.getZone());
+ .withTag("zone", environment.getZone())
+ .withTag("parentHostname", parentHostname);
if (nodeSpec.owner.isPresent()) scheduleMaker
.withTag("tenantName", nodeSpec.owner.get().tenant)
- .withTag("app", nodeSpec.owner.get().application);
+ .withTag("app", nodeSpec.owner.get().application + "." + nodeSpec.owner.get().instance);
if (nodeSpec.membership.isPresent()) scheduleMaker
.withTag("clustertype", nodeSpec.membership.get().clusterType)
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
index 5e33a576463..6e059d1dfe9 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/provider/ComponentsProviderImpl.java
@@ -67,7 +67,7 @@ public class ComponentsProviderImpl implements ComponentsProvider {
nodeRepository, nodeAdmin, INITIAL_SCHEDULER_DELAY_MILLIS, NODE_ADMIN_STATE_INTERVAL_MILLIS, orchestrator, baseHostName);
metricReceiverWrapper = metricReceiver;
- initializeNodeAgentSecretAgent(docker, environment.getZone());
+ initializeNodeAgentSecretAgent(docker);
}
@Override
@@ -81,14 +81,14 @@ public class ComponentsProviderImpl implements ComponentsProvider {
}
- private void initializeNodeAgentSecretAgent(Docker docker, String zone) {
+ private void initializeNodeAgentSecretAgent(Docker docker) {
ContainerName nodeAdminName = new ContainerName("node-admin");
final Path yamasAgentFolder = Paths.get("/etc/yamas-agent/");
docker.executeInContainer(nodeAdminName, "sudo", "chmod", "a+w", yamasAgentFolder.toString());
Path nodeAdminCheckPath = Paths.get("/usr/bin/curl");
SecretAgentScheduleMaker scheduleMaker = new SecretAgentScheduleMaker("node-admin", 60, nodeAdminCheckPath,
- "localhost:4080/rest/metrics").withTag("zone", zone);
+ "localhost:4080/rest/metrics");
try {
scheduleMaker.writeTo(yamasAgentFolder);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index 67af5a996af..a5d3efa10db 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -433,6 +433,7 @@ public class NodeAgentImplTest {
ContainerNodeSpec.Membership membership = new ContainerNodeSpec.Membership("clustType", "clustId", "grp", 3, false);
nodeAgent.lastNodeSpec = new ContainerNodeSpec(hostName, null, containerName, Node.State.active, "tenants",
"docker", version, Optional.of(owner), Optional.of(membership), null, null, null, null, null);
+ nodeAgent.parentHostname = "parent.host.name.yahoo.com";
long totalContainerCpuTime = (long) ((Map) cpu_stats.get("cpu_usage")).get("total_usage");
long totalSystemCpuTime = (long) cpu_stats.get("system_cpu_usage");
diff --git a/node-admin/src/test/resources/docker.stats.metrics.expected.json b/node-admin/src/test/resources/docker.stats.metrics.expected.json
index c8bdf87707c..50a47a9e14a 100644
--- a/node-admin/src/test/resources/docker.stats.metrics.expected.json
+++ b/node-admin/src/test/resources/docker.stats.metrics.expected.json
@@ -3,7 +3,7 @@
"application":"docker",
"dimensions":{
"flavor":"docker",
- "app":"testapp",
+ "app":"testapp.testinstance",
"clustertype":"clustType",
"role":"tenants",
"tenantName":"tester",
@@ -11,38 +11,52 @@
"vespaVersion":"1.2.3",
"state":"active",
"clusterid":"clustId",
+ "parentHostname":"parent.host.name.yahoo.com",
+ "zone":"dev.us-east-1",
"interface":"eth1"
},
"metrics":{
"node.network.bytes_sent":5.4246745E7,
"node.network.bytes_rcvd":3245766.0
+ },
+ "routing":{
+ "yamas":{
+ "namespaces": ["Vespa"]
+ }
}
},
{
"application":"docker",
"dimensions":{
"flavor":"docker",
- "app":"testapp",
+ "app":"testapp.testinstance",
"clustertype":"clustType",
"role":"tenants",
"tenantName":"tester",
"host":"hostname",
"vespaVersion":"1.2.3",
"state":"active",
- "clusterid":"clustId"
+ "clusterid":"clustId",
+ "parentHostname":"parent.host.name.yahoo.com",
+ "zone":"dev.us-east-1"
},
"metrics":{
"node.cpu.busy.pct": 45.6789123,
"node.cpu.throttled_time": 4523.0,
"node.memory.usage":1.752707072E9,
"node.memory.limit":4.294967296E9
+ },
+ "routing":{
+ "yamas":{
+ "namespaces": ["Vespa"]
+ }
}
},
{
"application":"docker",
"dimensions":{
"flavor":"docker",
- "app":"testapp",
+ "app":"testapp.testinstance",
"clustertype":"clustType",
"role":"tenants",
"tenantName":"tester",
@@ -50,11 +64,18 @@
"vespaVersion":"1.2.3",
"state":"active",
"clusterid":"clustId",
+ "parentHostname":"parent.host.name.yahoo.com",
+ "zone":"dev.us-east-1",
"interface":"eth0"
},
"metrics":{
"node.network.bytes_sent":2.0303455E7,
"node.network.bytes_rcvd":1.949927E7
+ },
+ "routing":{
+ "yamas":{
+ "namespaces": ["Vespa"]
+ }
}
}
-] \ No newline at end of file
+]