diff --git a/ebean-api/src/main/java/io/ebean/meta/BasicMetricVisitor.java b/ebean-api/src/main/java/io/ebean/meta/BasicMetricVisitor.java index d4ffd4f29..a95ca0b5a 100644 --- a/ebean-api/src/main/java/io/ebean/meta/BasicMetricVisitor.java +++ b/ebean-api/src/main/java/io/ebean/meta/BasicMetricVisitor.java @@ -42,6 +42,11 @@ public class BasicMetricVisitor extends AbstractMetricVisitor implements ServerM return new MetricsAsJson(this); } + @Override + public List asData() { + return new MetricsAsData(this).data(); + } + @Override public List timedMetrics() { return timed; diff --git a/ebean-api/src/main/java/io/ebean/meta/MetaInfoManager.java b/ebean-api/src/main/java/io/ebean/meta/MetaInfoManager.java index f0bcdc586..81e7944f0 100644 --- a/ebean-api/src/main/java/io/ebean/meta/MetaInfoManager.java +++ b/ebean-api/src/main/java/io/ebean/meta/MetaInfoManager.java @@ -17,21 +17,20 @@ public interface MetaInfoManager { ServerMetrics collectMetrics(); /** - * Collect the metrics in raw JSON form. - *
{@code
-   *
-   *   String metricsJson = database.getMetaInfoManager()
-   *       .collectMetricsAsJson()
-   *       .json();
-   *
-   * }
+ * Deprecated migrate to collectMetrics().asJson(). */ - ServerMetricsAsJson collectMetricsAsJson(); + @Deprecated + default ServerMetricsAsJson collectMetricsAsJson() { + return collectMetrics().asJson(); + } /** - * Return the metrics as a list of MetricData. + * Deprecated migrate to collectMetrics().asData(). */ - List collectMetricsAsData(); + @Deprecated + default List collectMetricsAsData() { + return collectMetrics().asData(); + } /** * Visit the metrics resetting and collecting/reporting as desired. diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java b/ebean-api/src/main/java/io/ebean/meta/MetricsAsData.java similarity index 65% rename from ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java rename to ebean-api/src/main/java/io/ebean/meta/MetricsAsData.java index fc6b80858..646d5bcb6 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DumpMetricsData.java +++ b/ebean-api/src/main/java/io/ebean/meta/MetricsAsData.java @@ -1,12 +1,4 @@ -package io.ebeaninternal.server.core; - -import io.ebean.Database; -import io.ebean.meta.MetaCountMetric; -import io.ebean.meta.MetaMetric; -import io.ebean.meta.MetaQueryMetric; -import io.ebean.meta.MetaTimedMetric; -import io.ebean.meta.MetricData; -import io.ebean.meta.ServerMetrics; +package io.ebean.meta; import java.util.ArrayList; import java.util.List; @@ -14,30 +6,26 @@ import java.util.List; /** * Dump the metrics into a list of MetricData. */ -final class DumpMetricsData { +final class MetricsAsData { - private final Database database; + private final ServerMetrics metrics; private final List list = new ArrayList<>(); - DumpMetricsData(Database database) { - this.database = database; + MetricsAsData(ServerMetrics metrics) { + this.metrics = metrics; } List data() { - collect(database.metaInfo().collectMetrics()); - return list; - } - - private void collect(ServerMetrics serverMetrics) { - for (MetaTimedMetric metric : serverMetrics.timedMetrics()) { + for (MetaTimedMetric metric : metrics.timedMetrics()) { add(metric); } - for (MetaCountMetric metric : serverMetrics.countMetrics()) { + for (MetaCountMetric metric : metrics.countMetrics()) { addCount(metric); } - for (MetaQueryMetric metric : serverMetrics.queryMetrics()) { + for (MetaQueryMetric metric : metrics.queryMetrics()) { addQuery(metric); } + return list; } private MetricData create(MetaMetric metric) { diff --git a/ebean-api/src/main/java/io/ebean/meta/ServerMetrics.java b/ebean-api/src/main/java/io/ebean/meta/ServerMetrics.java index 385f4578d..7587df16c 100644 --- a/ebean-api/src/main/java/io/ebean/meta/ServerMetrics.java +++ b/ebean-api/src/main/java/io/ebean/meta/ServerMetrics.java @@ -17,6 +17,11 @@ public interface ServerMetrics { */ ServerMetricsAsJson asJson(); + /** + * Return the metrics as a list of MetricData. + */ + List asData(); + /** * Return timed metrics for Transactions, labelled SqlQuery, labelled SqlUpdate. */ diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java index 3dd8c84c4..4ce02d910 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/DefaultMetaInfoManager.java @@ -47,16 +47,6 @@ final class DefaultMetaInfoManager implements MetaInfoManager { return visitBasic(); } - @Override - public ServerMetricsAsJson collectMetricsAsJson() { - return collectMetrics().asJson(); - } - - @Override - public List collectMetricsAsData() { - return new DumpMetricsData(server).data(); - } - @Override public BasicMetricVisitor visitBasic() { BasicMetricVisitor basic = new BasicMetricVisitor(server.name());