diff options
author | Jon Bratseth <bratseth@oath.com> | 2021-02-03 14:59:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-03 14:59:09 +0100 |
commit | e40b6d86fe34f81a707034ac70cf1e3efa06a3c7 (patch) | |
tree | 47da23c7e4120c1f70c84db5c180180852cc6555 /container-core | |
parent | 77f94db089a52a536e47f94753ed130d57c70bee (diff) | |
parent | 851a77bb26bcb9661dcdf6d485cda20d44d5186e (diff) |
Merge pull request #16363 from vespa-engine/gjoranv/cleanup-StateHandler
Gjoranv/cleanup state handler
Diffstat (limited to 'container-core')
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() |