diff options
Diffstat (limited to 'container-core')
2 files changed, 16 insertions, 48 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java index df4f4bcb9ea..e06c7c8aa32 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java @@ -51,25 +51,20 @@ public class MetricsPacketsHandler extends AbstractRequestHandler { static final String APPLICATION_KEY = "application"; static final String TIMESTAMP_KEY = "timestamp"; - static final String STATUS_CODE_KEY = "status_code"; - static final String STATUS_MSG_KEY = "status_msg"; static final String METRICS_KEY = "metrics"; static final String DIMENSIONS_KEY = "dimensions"; static final String PACKET_SEPARATOR = "\n\n"; - private final StateMonitor monitor; private final Timer timer; private final SnapshotProvider snapshotProvider; private final String applicationName; private final String hostDimension; @Inject - public MetricsPacketsHandler(StateMonitor monitor, - Timer timer, + public MetricsPacketsHandler(Timer timer, ComponentRegistry<SnapshotProvider> snapshotProviders, MetricsPacketsHandlerConfig config) { - this.monitor = monitor; this.timer = timer; snapshotProvider = getSnapshotProviderOrThrow(snapshotProviders); applicationName = config.application(); @@ -105,7 +100,7 @@ public class MetricsPacketsHandler extends AbstractRequestHandler { return buildPrometheusOutput(); } - String output = jsonToString(getStatusPacket()) + getAllMetricsPackets() + "\n"; + String output = getAllMetricsPackets() + "\n"; return output.getBytes(StandardCharsets.UTF_8); } catch (JsonProcessingException e) { throw new RuntimeException("Bad JSON construction.", e); @@ -117,7 +112,6 @@ public class MetricsPacketsHandler extends AbstractRequestHandler { private byte[] getMetricsArray() throws JsonProcessingException { ObjectNode root = jsonMapper.createObjectNode(); ArrayNode jsonArray = jsonMapper.createArrayNode(); - jsonArray.add(getStatusPacket()); getPacketsForSnapshot(getSnapshot(), applicationName, timer.currentTimeMillis()) .forEach(jsonArray::add); MetricGatherer.getAdditionalMetrics().forEach(jsonArray::add); @@ -133,19 +127,6 @@ public class MetricsPacketsHandler extends AbstractRequestHandler { return PrometheusHelper.buildPrometheusOutput(getSnapshot(), applicationName, timer.currentTimeMillis()); } - /** - * Exactly one status packet is added to the response. - */ - private JsonNode getStatusPacket() { - ObjectNode packet = jsonMapper.createObjectNode(); - packet.put(APPLICATION_KEY, applicationName); - - StateMonitor.Status status = monitor.status(); - packet.put(STATUS_CODE_KEY, status.ordinal()); - packet.put(STATUS_MSG_KEY, status.name()); - return packet; - } - private static String jsonToString(JsonNode jsonObject) throws JsonProcessingException { return jsonMapper.writerWithDefaultPrettyPrinter() .writeValueAsString(jsonObject); @@ -154,9 +135,11 @@ public class MetricsPacketsHandler extends AbstractRequestHandler { private String getAllMetricsPackets() throws JsonProcessingException { StringBuilder ret = new StringBuilder(); List<JsonNode> metricsPackets = getPacketsForSnapshot(getSnapshot(), applicationName, timer.currentTimeMillis()); + String delimiter = ""; for (JsonNode packet : metricsPackets) { - ret.append(PACKET_SEPARATOR); // For legibility and parsing in unit tests + ret.append(delimiter); // For legibility and parsing in unit tests ret.append(jsonToString(packet)); + delimiter = PACKET_SEPARATOR; } return ret.toString(); } diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java index 434622852e9..3f5c31e5e7f 100644 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java +++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java @@ -15,8 +15,6 @@ import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.APPLICATION_ import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.DIMENSIONS_KEY; import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.METRICS_KEY; import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.PACKET_SEPARATOR; -import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.STATUS_CODE_KEY; -import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.STATUS_MSG_KEY; import static com.yahoo.container.jdisc.state.MetricsPacketsHandler.TIMESTAMP_KEY; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -35,30 +33,17 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { public void setupHandler() { metricsPacketsHandlerConfig = new MetricsPacketsHandlerConfig(new MetricsPacketsHandlerConfig.Builder() .application(APPLICATION_NAME).hostname(HOST_DIMENSION)); - metricsPacketsHandler = new MetricsPacketsHandler(monitor, timer, snapshotProviderRegistry, metricsPacketsHandlerConfig); + metricsPacketsHandler = new MetricsPacketsHandler(timer, snapshotProviderRegistry, metricsPacketsHandlerConfig); testDriver = new RequestHandlerTestDriver(metricsPacketsHandler); } @Test - void status_packet_is_returned_prior_to_first_snapshot() throws Exception { - String response = requestAsString("http://localhost/metrics-packets"); - - List<JsonNode> packets = toJsonPackets(response); - assertEquals(1, packets.size()); - - JsonNode statusPacket = packets.get(0); - assertEquals(APPLICATION_NAME, statusPacket.get(APPLICATION_KEY).asText(), statusPacket.toString()); - assertEquals(0, statusPacket.get(STATUS_CODE_KEY).asInt(), statusPacket.toString()); - assertEquals("up", statusPacket.get(STATUS_MSG_KEY).asText(), statusPacket.toString()); - } - - @Test void metrics_are_included_after_snapshot() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - assertEquals(2, packets.size()); + assertEquals(1, packets.size()); - JsonNode counterPacket = packets.get(1); + JsonNode counterPacket = packets.get(0); assertCountMetric(counterPacket, "counter.count", 1); } @@ -66,7 +51,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { void metadata_is_included_in_each_metrics_packet() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - JsonNode counterPacket = packets.get(1); + JsonNode counterPacket = packets.get(0); assertTrue(counterPacket.has(TIMESTAMP_KEY)); assertTrue(counterPacket.has(APPLICATION_KEY)); @@ -77,7 +62,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { void timestamp_resolution_is_in_seconds() throws Exception { createSnapshotWithCountMetric("counter", 1, null); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - JsonNode counterPacket = packets.get(1); + JsonNode counterPacket = packets.get(0); assertEquals(SNAPSHOT_INTERVAL / 1000L, counterPacket.get(TIMESTAMP_KEY).asLong()); } @@ -90,7 +75,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - JsonNode gaugeMetric = packets.get(1).get(METRICS_KEY); + JsonNode gaugeMetric = packets.get(0).get(METRICS_KEY); assertEquals(0.2, gaugeMetric.get("gauge.last").asDouble(), 0.1); assertEquals(0.2, gaugeMetric.get("gauge.average").asDouble(), 0.1); @@ -103,7 +88,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { createSnapshotWithCountMetric("counter", 1, context); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - JsonNode counterPacket = packets.get(1); + JsonNode counterPacket = packets.get(0); assertTrue(counterPacket.has(DIMENSIONS_KEY)); JsonNode dimensions = counterPacket.get(DIMENSIONS_KEY); @@ -119,8 +104,8 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - assertEquals(2, packets.size()); - JsonNode countersPacket = packets.get(1); + assertEquals(1, packets.size()); + JsonNode countersPacket = packets.get(0); assertEquals("value1", countersPacket.get(DIMENSIONS_KEY).get("dim1").asText()); assertCountMetric(countersPacket, "counter1.count", 1); @@ -137,7 +122,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); List<JsonNode> packets = incrementTimeAndGetJsonPackets(); - assertEquals(3, packets.size()); + assertEquals(2, packets.size()); } @Test @@ -150,7 +135,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase { snapshotProvider.setSnapshot(snapshot); var packets = incrementTimeAndGetJsonPackets(); - assertEquals(3, packets.size()); + assertEquals(2, packets.size()); packets.forEach(packet -> { if (!packet.has(DIMENSIONS_KEY)) return; |