diff options
author | gjoranv <gjoranv@gmail.com> | 2023-06-16 11:52:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-16 11:52:22 +0200 |
commit | 9f0b5dec5e3989382a549f0cf65d26fa4ca553d8 (patch) | |
tree | 17178a9b837fb56b2e1a29ae9d82921dd28b6994 /container-core | |
parent | 7f4a0f0a42a159c7f8c3e2a9203cd9a508f8b14e (diff) | |
parent | 0b364eac1877605a07245b3570a84768e75790f2 (diff) |
Merge pull request #27439 from vespa-engine/olaa/remove-status
Remove status packets and unused checks
Diffstat (limited to 'container-core')
5 files changed, 16 insertions, 137 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/CoredumpGatherer.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/CoredumpGatherer.java deleted file mode 100644 index c82f0cb436f..00000000000 --- a/container-core/src/main/java/com/yahoo/container/jdisc/state/CoredumpGatherer.java +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.container.jdisc.state; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.yahoo.vespa.defaults.Defaults; - -import java.io.IOException; -import java.io.UncheckedIOException; -import java.nio.file.NoSuchFileException; -import java.nio.file.Path; -import java.time.Instant; -import java.util.stream.Stream; - -/** - * @author olaa - */ -public class CoredumpGatherer { - - private static final ObjectMapper jsonMapper = new ObjectMapper(); - - private static final Path COREDUMP_PATH = Path.of(Defaults.getDefaults().underVespaHome("var/crash/processing")); - - public static JsonNode gatherCoredumpMetrics(FileWrapper fileWrapper) { - int coredumps = getNumberOfCoredumps(fileWrapper); - ObjectNode packet = jsonMapper.createObjectNode(); - packet.put("status_code", coredumps == 0 ? 0 : 1); - packet.put("status_msg", coredumps == 0 ? "OK" : String.format("Found %d coredump(s)", coredumps)); - packet.put("timestamp", Instant.now().getEpochSecond()); - packet.put("application", "system-coredumps-processing"); - return packet; - } - - private static int getNumberOfCoredumps(FileWrapper fileWrapper) { - try (Stream<Path> stream = fileWrapper.walkTree(COREDUMP_PATH)){ - return (int) stream - .filter(fileWrapper::isRegularFile) - .count(); - } catch (NoSuchFileException e) { - return 0; - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } -} diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricGatherer.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricGatherer.java index fbe6c5c0aec..103a4363ac2 100644 --- a/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricGatherer.java +++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/MetricGatherer.java @@ -16,7 +16,6 @@ public class MetricGatherer { static List<JsonNode> getAdditionalMetrics() { FileWrapper fileWrapper = new FileWrapper(); List<JsonNode> packetList = new ArrayList<>(); - packetList.add(CoredumpGatherer.gatherCoredumpMetrics(fileWrapper)); if (System.getProperty("os.name").contains("nux")) packetList.add(HostLifeGatherer.getHostLifePacket(fileWrapper)); return packetList; 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/CoredumpGathererTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java deleted file mode 100644 index 5cec6c471fe..00000000000 --- a/container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.container.jdisc.state; - -import com.fasterxml.jackson.databind.JsonNode; -import org.junit.jupiter.api.Test; - -import java.nio.file.Path; -import java.util.stream.Stream; - -import static org.junit.jupiter.api.Assertions.assertEquals; - - -/** - * @author olaa - */ -public class CoredumpGathererTest { - - @Test - void finds_one_coredump() { - JsonNode packet = CoredumpGatherer.gatherCoredumpMetrics(new MockFileWrapper()); - - assertEquals("system-coredumps-processing", packet.get("application").textValue()); - assertEquals(1, packet.get("status_code").intValue()); - assertEquals("Found 1 coredump(s)", packet.get("status_msg").textValue()); - - } - - static class MockFileWrapper extends FileWrapper { - - - @Override - Stream<Path> walkTree(Path path) { - return Stream.of(Path.of("dummy-path")); - } - - @Override - boolean isRegularFile(Path path) { - return true; - } - } - -} 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; |