#1872 - Reporting ORM metrics defaults to suppressing sql and location after initial collection

This commit is contained in:
rob bygrave
2019-11-29 22:05:58 +13:00
parent 996e582a85
commit be12910aec
5 changed files with 91 additions and 21 deletions
@@ -1,6 +1,5 @@
package io.ebeaninternal.server.query;
import io.ebean.ProfileLocation;
import io.ebean.bean.ObjectGraphNode;
import io.ebean.meta.MetaOrmQueryMetric;
import io.ebean.meta.MetaOrmQueryOrigin;
@@ -24,6 +23,8 @@ public final class CQueryPlanStats {
private final TimedMetric timedMetric;
private boolean collected;
private long lastQueryTime;
private final ConcurrentHashMap<ObjectGraphNode, LongAdder> origins;
@@ -94,7 +95,9 @@ public final class CQueryPlanStats {
TimedMetricStats collect = timedMetric.collect(reset);
List<MetaOrmQueryOrigin> origins = getOrigins(reset);
return new Snapshot(queryPlan, collect, lastQueryTime, origins);
Snapshot snapshot = new Snapshot(collected, queryPlan, collect, lastQueryTime, origins);
collected = true;
return snapshot;
}
/**
@@ -150,12 +153,14 @@ public final class CQueryPlanStats {
*/
static class Snapshot implements MetaOrmQueryMetric {
private final boolean collected;
private final CQueryPlan queryPlan;
private final TimedMetricStats metrics;
private final long lastQueryTime;
private final List<MetaOrmQueryOrigin> origins;
Snapshot(CQueryPlan queryPlan, TimedMetricStats metrics, long lastQueryTime, List<MetaOrmQueryOrigin> origins) {
Snapshot(boolean collected, CQueryPlan queryPlan, TimedMetricStats metrics, long lastQueryTime, List<MetaOrmQueryOrigin> origins) {
this.collected = collected;
this.queryPlan = queryPlan;
this.metrics = metrics;
this.lastQueryTime = lastQueryTime;
@@ -242,6 +247,11 @@ public final class CQueryPlanStats {
return queryPlan.getSql();
}
@Override
public boolean initialCollection() {
return !collected;
}
@Override
public List<MetaOrmQueryOrigin> getOrigins() {
return origins;