summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorgjoranv <gjoranv@gmail.com>2023-06-16 11:52:22 +0200
committerGitHub <noreply@github.com>2023-06-16 11:52:22 +0200
commit9f0b5dec5e3989382a549f0cf65d26fa4ca553d8 (patch)
tree17178a9b837fb56b2e1a29ae9d82921dd28b6994 /container-core
parent7f4a0f0a42a159c7f8c3e2a9203cd9a508f8b14e (diff)
parent0b364eac1877605a07245b3570a84768e75790f2 (diff)
Merge pull request #27439 from vespa-engine/olaa/remove-status
Remove status packets and unused checks
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/CoredumpGatherer.java46
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/MetricGatherer.java1
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java27
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/CoredumpGathererTest.java42
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java37
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;