summaryrefslogtreecommitdiffstats
path: root/container-core
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2021-02-03 14:59:09 +0100
committerGitHub <noreply@github.com>2021-02-03 14:59:09 +0100
commite40b6d86fe34f81a707034ac70cf1e3efa06a3c7 (patch)
tree47da23c7e4120c1f70c84db5c180180852cc6555 /container-core
parent77f94db089a52a536e47f94753ed130d57c70bee (diff)
parent851a77bb26bcb9661dcdf6d485cda20d44d5186e (diff)
Merge pull request #16363 from vespa-engine/gjoranv/cleanup-StateHandler
Gjoranv/cleanup state handler
Diffstat (limited to 'container-core')
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/MetricsPacketsHandler.java17
-rw-r--r--container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java26
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/MetricsPacketsHandlerTest.java3
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java2
-rw-r--r--container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java2
5 files changed, 19 insertions, 31 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 824323af3d6..ff73fcd3b4e 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
@@ -17,7 +17,6 @@ import com.yahoo.jdisc.handler.ContentChannel;
import com.yahoo.jdisc.handler.ResponseDispatch;
import com.yahoo.jdisc.handler.ResponseHandler;
import com.yahoo.jdisc.http.HttpHeaders;
-import com.yahoo.metrics.MetricsPresentationConfig;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
@@ -29,7 +28,7 @@ import java.util.Map;
import java.util.concurrent.TimeUnit;
import static com.yahoo.container.jdisc.state.JsonUtil.sanitizeDouble;
-import static com.yahoo.container.jdisc.state.StateHandler.getSnapshotPreprocessor;
+import static com.yahoo.container.jdisc.state.StateHandler.getSnapshotProviderOrThrow;
/**
* This handler outputs metrics in a json-like format, consisting of a series of metrics packets.
@@ -60,18 +59,17 @@ public class MetricsPacketsHandler extends AbstractRequestHandler {
private final StateMonitor monitor;
private final Timer timer;
- private final SnapshotProvider snapshotPreprocessor;
+ private final SnapshotProvider snapshotProvider;
private final String applicationName;
@Inject
public MetricsPacketsHandler(StateMonitor monitor,
Timer timer,
- ComponentRegistry<SnapshotProvider> preprocessors,
- MetricsPresentationConfig presentation,
+ ComponentRegistry<SnapshotProvider> snapshotProviders,
MetricsPacketsHandlerConfig config) {
this.monitor = monitor;
this.timer = timer;
- snapshotPreprocessor = getSnapshotPreprocessor(preprocessors, presentation);
+ snapshotProvider = getSnapshotProviderOrThrow(snapshotProviders);
applicationName = config.application();
}
@@ -148,12 +146,7 @@ public class MetricsPacketsHandler extends AbstractRequestHandler {
}
private MetricSnapshot getSnapshot() {
- if (snapshotPreprocessor == null) {
- // TODO: throw exception in ctor instead
- return new MetricSnapshot(0L, 0L, TimeUnit.MILLISECONDS);
- } else {
- return snapshotPreprocessor.latestSnapshot();
- }
+ return snapshotProvider.latestSnapshot();
}
private List<JsonNode> getPacketsForSnapshot(MetricSnapshot metricSnapshot, String application, long timestamp) {
diff --git a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
index 5ac2871d9dd..0dd284e21cf 100644
--- a/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
+++ b/container-core/src/main/java/com/yahoo/container/jdisc/state/StateHandler.java
@@ -19,7 +19,6 @@ import com.yahoo.jdisc.handler.ContentChannel;
import com.yahoo.jdisc.handler.ResponseDispatch;
import com.yahoo.jdisc.handler.ResponseHandler;
import com.yahoo.jdisc.http.HttpHeaders;
-import com.yahoo.metrics.MetricsPresentationConfig;
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
@@ -54,20 +53,24 @@ public class StateHandler extends AbstractRequestHandler {
private final StateMonitor monitor;
private final Timer timer;
private final byte[] config;
- private final SnapshotProvider snapshotPreprocessor;
+ private final SnapshotProvider snapshotProvider;
@Inject
public StateHandler(StateMonitor monitor, Timer timer, ApplicationMetadataConfig config,
- ComponentRegistry<SnapshotProvider> preprocessors, MetricsPresentationConfig presentation) {
+ ComponentRegistry<SnapshotProvider> snapshotProviders) {
this.monitor = monitor;
this.timer = timer;
this.config = buildConfigOutput(config);
- snapshotPreprocessor = getSnapshotPreprocessor(preprocessors, presentation);
+ snapshotProvider = getSnapshotProviderOrThrow(snapshotProviders);
}
- static SnapshotProvider getSnapshotPreprocessor(ComponentRegistry<SnapshotProvider> preprocessors, MetricsPresentationConfig presentation) {
+ static SnapshotProvider getSnapshotProviderOrThrow(ComponentRegistry<SnapshotProvider> preprocessors) {
List<SnapshotProvider> allPreprocessors = preprocessors.allComponents();
- return (allPreprocessors.size() > 0) ? allPreprocessors.get(0) : null;
+ if (allPreprocessors.size() > 0) {
+ return allPreprocessors.get(0);
+ } else {
+ throw new IllegalArgumentException("At least one snapshot provider is required.");
+ }
}
@Override
@@ -188,8 +191,8 @@ public class StateHandler extends AbstractRequestHandler {
private byte[] buildHistogramsOutput() {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
- if (snapshotPreprocessor != null) {
- snapshotPreprocessor.histogram(new PrintStream(baos));
+ if (snapshotProvider != null) {
+ snapshotProvider.histogram(new PrintStream(baos));
}
return baos.toByteArray();
}
@@ -203,12 +206,7 @@ public class StateHandler extends AbstractRequestHandler {
}
private MetricSnapshot getSnapshot() {
- if (snapshotPreprocessor == null) {
- // TODO: throw exception in ctor instead
- return new MetricSnapshot(0L, 0L, TimeUnit.MILLISECONDS);
- } else {
- return snapshotPreprocessor.latestSnapshot();
- }
+ return snapshotProvider.latestSnapshot();
}
private StateMonitor.Status getStatus() {
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 89bde3eeb5b..5a386ed2d89 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
@@ -34,8 +34,7 @@ public class MetricsPacketsHandlerTest extends StateHandlerTestBase {
public void setupHandler() {
metricsPacketsHandlerConfig = new MetricsPacketsHandlerConfig(new MetricsPacketsHandlerConfig.Builder()
.application(APPLICATION_NAME));
- metricsPacketsHandler = new MetricsPacketsHandler(monitor, timer, snapshotProviderRegistry,
- metricsPresentationConfig, metricsPacketsHandlerConfig);
+ metricsPacketsHandler = new MetricsPacketsHandler(monitor, timer, snapshotProviderRegistry, metricsPacketsHandlerConfig);
testDriver = new RequestHandlerTestDriver(metricsPacketsHandler);
}
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java
index 385eb627427..0b7bf572e64 100644
--- a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java
+++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTest.java
@@ -25,7 +25,7 @@ public class StateHandlerTest extends StateHandlerTestBase {
@Before
public void setupHandler() {
- stateHandler = new StateHandler(monitor, timer, applicationMetadataConfig, snapshotProviderRegistry , metricsPresentationConfig);
+ stateHandler = new StateHandler(monitor, timer, applicationMetadataConfig, snapshotProviderRegistry);
testDriver = new RequestHandlerTestDriver(stateHandler);
}
diff --git a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java
index 68c1ae10ec6..3dc8627ca74 100644
--- a/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java
+++ b/container-core/src/test/java/com/yahoo/container/jdisc/state/StateHandlerTestBase.java
@@ -31,7 +31,6 @@ public class StateHandlerTestBase {
static HealthMonitorConfig healthMonitorConfig;
static ApplicationMetadataConfig applicationMetadataConfig;
- static MetricsPresentationConfig metricsPresentationConfig;
static MetricsPacketsHandlerConfig metricsPacketsHandlerConfig;
final AtomicLong currentTimeMillis = new AtomicLong(0);
@@ -42,7 +41,6 @@ public class StateHandlerTestBase {
@BeforeClass
public static void setupClass() {
- metricsPresentationConfig = new MetricsPresentationConfig(new MetricsPresentationConfig.Builder());
healthMonitorConfig = new HealthMonitorConfig(new HealthMonitorConfig.Builder()
.initialStatus("up"));
applicationMetadataConfig = new ApplicationMetadataConfig(new ApplicationMetadataConfig.Builder()