aboutsummaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2023-06-15 16:32:45 +0200
committerOla Aunronning <olaa@yahooinc.com>2023-06-15 16:32:45 +0200
commit0b364eac1877605a07245b3570a84768e75790f2 (patch)
treeb04bf1bed212fb7650d41c9f03eb31017f97edc9 /container-core
parent3e22f3b64a889a8045a4008d3b98c542de4301b9 (diff)
Remove status packet from MetricsPacketsHandler
Diffstat (limited to 'container-core')
-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/MetricsPacketsHandlerTest.java37
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;