summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2019-06-17 10:28:27 +0200
committergjoranv <gv@verizonmedia.com>2019-06-17 10:35:10 +0200
commite9d1f44ae074a5a14428422fb170cbc4d8f51d8e (patch)
treecfe5719ed91e3110165073d762f448e6eb5b4194
parent82a45e1f5db39ded92355d499c7e57b0e37c2f06 (diff)
Revert "Stop sending metrics to old and now disabled metrics proxy."
- We can't do this until all hosted apps are on Vespa 7. This reverts commit c77db83b3b705a7c6c625dcdb579a5e7c054e80d.
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java25
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java3
2 files changed, 23 insertions, 5 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 ed3baf1479a..cfdcefec1e3 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
@@ -40,6 +40,7 @@ import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
+import java.util.logging.Level;
import java.util.logging.Logger;
import static com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentImpl.ContainerState.ABSENT;
@@ -600,13 +601,27 @@ public class NodeAgentImpl implements NodeAgent {
for (DimensionMetrics dimensionMetrics : metrics) {
params.append(dimensionMetrics.toSecretAgentReport());
}
- String wrappedMetrics = "s:" + params.toString();
+ } catch (JsonProcessingException e) {
+ // TODO: wrap everything into one try-block (to avoid 'return') when old metrics proxy is discontinued
+ context.log(logger, LogLevel.WARNING, "Failed to wrap metrics in secret agent report", e);
+ return;
+ }
+ String wrappedMetrics = "s:" + params.toString();
+
+ // Push metrics to the metrics proxy in each container
+ runPushMetricsCommand(context, wrappedMetrics, true);
+ runPushMetricsCommand(context, wrappedMetrics, false);
+ }
- // Push metrics to the metrics proxy in each container
- String[] command = {"vespa-rpc-invoke", "-t", "2", "tcp/localhost:19095", "setExtraMetrics", wrappedMetrics};
+ // TODO: Clean up and inline method when old metrics proxy has been discontinued.
+ private void runPushMetricsCommand(NodeAgentContext context, String wrappedMetrics, boolean newMetricsProxy) {
+ int port = newMetricsProxy ? 19095 : 19091;
+ String[] command = {"vespa-rpc-invoke", "-t", "2", "tcp/localhost:" + port, "setExtraMetrics", wrappedMetrics};
+ try {
dockerOperations.executeCommandInContainerAsRoot(context, 5L, command);
- } catch (JsonProcessingException | DockerExecTimeoutException e) {
- context.log(logger, LogLevel.WARNING, "Failed to push metrics to container", e);
+ } catch (DockerExecTimeoutException e) {
+ Level level = newMetricsProxy ? LogLevel.DEBUG : LogLevel.WARNING;
+ context.log(logger, level, "Failed to push metrics to container", e);
}
}
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 db66d5f9483..c43750684f6 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
@@ -688,6 +688,9 @@ public class NodeAgentImplTest {
.replaceAll("\"timestamp\":\\d+", "\"timestamp\":0")
.replaceAll("([0-9]+\\.[0-9]{1,3})([0-9]*)", "$1"); // Only keep the first 3 decimals
+ // TODO: Remove when old metrics proxy is discontinued.
+ calledCommand[3] = calledCommand[3].replaceFirst("19091", "19095");
+
assertEquals(context, calledContainerName);
assertEquals(5L, calledTimeout);
assertArrayEquals(expectedCommand, calledCommand);