diff options
author | gjoranv <gv@verizonmedia.com> | 2019-06-17 10:28:27 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-06-17 10:35:10 +0200 |
commit | e9d1f44ae074a5a14428422fb170cbc4d8f51d8e (patch) | |
tree | cfe5719ed91e3110165073d762f448e6eb5b4194 | |
parent | 82a45e1f5db39ded92355d499c7e57b0e37c2f06 (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.
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); |