diff options
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/jdisc/state')
3 files changed, 5 insertions, 69 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(); } |