diff --git a/api/pom.xml b/api/pom.xml
index 5891298..7fd6666 100644
--- a/api/pom.xml
+++ b/api/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/cli/pom.xml b/cli/pom.xml
index 72e0db3..d0dc0a6 100644
--- a/cli/pom.xml
+++ b/cli/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/client/pom.xml b/client/pom.xml
index 0aa78c2..9eb3336 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/forwarder/pom.xml b/forwarder/pom.xml
index cc95967..c65febd 100644
--- a/forwarder/pom.xml
+++ b/forwarder/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/mcp/pom.xml b/mcp/pom.xml
index 47921d2..6b3a1dc 100644
--- a/mcp/pom.xml
+++ b/mcp/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/pom.xml b/pom.xml
index 9fc5fe1..aa87950 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
pom
ebean-insight (parent)
diff --git a/server/pom.xml b/server/pom.xml
index 7f7d97a..0cecb18 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -7,7 +7,7 @@
io.ebean.insight
ebean-insight-parent
- 2.0-RC14
+ 2.0-RC15
../pom.xml
diff --git a/server/src/main/java/org/ebean/monitor/domain/DAppMetric.java b/server/src/main/java/org/ebean/monitor/domain/DAppMetric.java
index a19cc8f..76b4ba4 100644
--- a/server/src/main/java/org/ebean/monitor/domain/DAppMetric.java
+++ b/server/src/main/java/org/ebean/monitor/domain/DAppMetric.java
@@ -63,12 +63,6 @@ public class DAppMetric extends BaseDomain {
@Index
private final boolean planCapable;
- /**
- * The derived "rollup group" this metric will aggregate into.
- */
- @Length(300)
- private String rollupGroup;
-
/**
* The code location if supplied. Expected to be class and line of code.
*/
@@ -113,14 +107,6 @@ public boolean isPlanCapable() {
return planCapable;
}
- public String getRollupGroup() {
- return rollupGroup;
- }
-
- public void setRollupGroup(String rollupGroup) {
- this.rollupGroup = rollupGroup;
- }
-
public String getLoc() {
return loc;
}
diff --git a/server/src/main/java/org/ebean/monitor/domain/finder/DAppMetricFinder.java b/server/src/main/java/org/ebean/monitor/domain/finder/DAppMetricFinder.java
index d1136a1..9a43a0b 100644
--- a/server/src/main/java/org/ebean/monitor/domain/finder/DAppMetricFinder.java
+++ b/server/src/main/java/org/ebean/monitor/domain/finder/DAppMetricFinder.java
@@ -63,13 +63,4 @@ public DAppMetric globalByName(String name) {
.findOne();
}
- /**
- * Return all the metrics with rollupGroup for use in rollup processing.
- */
- public List forRollup() {
- final QDAppMetric m = QDAppMetric.alias();
- return new QDAppMetric()
- .select(m.name, m.rollupGroup, m.app)
- .findList();
- }
}
diff --git a/server/src/main/java/org/ebean/monitor/ingest/DeriveGroup.java b/server/src/main/java/org/ebean/monitor/ingest/DeriveGroup.java
deleted file mode 100644
index 5049e48..0000000
--- a/server/src/main/java/org/ebean/monitor/ingest/DeriveGroup.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.ebean.monitor.ingest;
-
-/**
- * Derive the rollup group name given the full metric name.
- */
-class DeriveGroup {
-
- private static final String L2N = "l2n";
- private static final String L2R = "l2r";
- private static final String IUD = "iud";
-
- /**
- * Derive and return the rollup group name.
- */
- static String of(String metricName) {
- int pos = metricName.indexOf('.');
- if (pos == -1) {
- return null;
- }
- String prefix = metricName.substring(0, pos);
- if (L2N.equals(prefix)) {
- return l2nGroup(metricName);
- }
- if (L2R.equals(prefix)) {
- return l2rGroup(metricName);
- }
- if (IUD.equals(prefix)) {
- return iudGroup(metricName);
- }
- return null;
- }
-
- /**
- * Return L2 near cache rollup group name.
- */
- private static String l2nGroup(String metricName) {
- return l2Group("l2n", metricName);
- }
-
- /**
- * Return L2 remote cache rollup group name.
- */
- private static String l2rGroup(String metricName) {
- return l2Group("l2r", metricName);
- }
-
- private static String l2Group(String prefix, String metricName) {
- int pos = metricName.lastIndexOf('.');
- if (pos == -1) {
- return null;
- }
- String suffix = metricName.substring(pos);
- return prefix + suffix;
- }
-
- /**
- * Return the IUD rollup group name.
- */
- private static String iudGroup(String metricName) {
- int pos = metricName.lastIndexOf('.');
- if (pos == -1) {
- return null;
- }
- String suffix = metricName.substring(pos);
- if (suffix.length() > 7) {
- return "iud" + suffix.substring(0, 7);
- } else {
- return "iud" + suffix;
- }
- }
-}
diff --git a/server/src/main/java/org/ebean/monitor/ingest/IngestBase.java b/server/src/main/java/org/ebean/monitor/ingest/IngestBase.java
index f085c8f..8c2996a 100644
--- a/server/src/main/java/org/ebean/monitor/ingest/IngestBase.java
+++ b/server/src/main/java/org/ebean/monitor/ingest/IngestBase.java
@@ -125,7 +125,6 @@ private DAppMetric createMetric(IngestEntry entry) {
final MetricData data = entry.getData();
DAppMetric metric = new DAppMetric(metricApp, entry.getKey(), data.name);
- metric.setRollupGroup(DeriveGroup.of(data.name));
metric.setSql(data.sql);
metric.setLoc(data.loc);
return metric;
diff --git a/server/src/main/java/org/ebean/monitor/rollup/Rollup.java b/server/src/main/java/org/ebean/monitor/rollup/Rollup.java
index 30ec24f..eee8602 100644
--- a/server/src/main/java/org/ebean/monitor/rollup/Rollup.java
+++ b/server/src/main/java/org/ebean/monitor/rollup/Rollup.java
@@ -2,8 +2,6 @@
import io.ebean.Database;
import io.ebean.annotation.Transactional;
-import org.ebean.monitor.domain.DApp;
-import org.ebean.monitor.domain.DAppMetric;
import org.ebean.monitor.domain.DGaugeRollupM1;
import org.ebean.monitor.domain.DRollupJob;
import org.ebean.monitor.domain.DTimedRollupM1;
@@ -15,24 +13,17 @@
import java.time.Instant;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
public class Rollup {
private static final Logger log = LoggerFactory.getLogger(Rollup.class);
- private final RollupGroups rollupGroups = new RollupGroups();
-
private final Instant eventTime;
private final ZonedDateTime atZone;
private long executionMillis;
private long count;
- private final Map globalMetrics = new LinkedHashMap<>();
-
public Rollup(Database database, Instant eventTime) {
this.eventTime = eventTime;
this.atZone = eventTime.atZone(ZoneOffset.UTC);
@@ -40,8 +31,7 @@ public Rollup(Database database, Instant eventTime) {
public void rollup() {
performRollup();
- int rollupCount = rollupGroups.getCount();
- log.debug("rollup time:{} millis:{} count:{} rollupGroups:{}", eventTime, executionMillis, count, rollupCount);
+ log.debug("rollup time:{} millis:{} count:{}", eventTime, executionMillis, count);
extraRollups();
}
@@ -76,32 +66,12 @@ boolean mod60(long minuteOfHour) {
@Transactional(batchSize = 500)
private void performRollup() {
final long start = System.currentTimeMillis();
- findAppMetrics();
rollupEvents();
- rollupGroups.saveGauges();
rollupTimed();
- rollupGroups.saveTimed();
executionMillis = System.currentTimeMillis() - start;
new DRollupJob(eventTime, executionMillis, count).save();
}
- /**
- * Load partial for all app metrics (as we check their rollup group).
- */
- private void findAppMetrics() {
- final List appMetrics = DAppMetric.find.forRollup();
- for (DAppMetric appMetric : appMetrics) {
- final DApp app = appMetric.getApp();
- if (app == null) {
- final String name = appMetric.getName();
- if (name != null) {
- // register AppMetric for use as rollup group metric
- globalMetrics.put(name, appMetric);
- }
- }
- }
- }
-
void rollupTimed() {
QDTimedAgg a = QDTimedAgg.alias();
@@ -129,31 +99,9 @@ void rollupEvents() {
private void add(DTimedRollupM1 timed) {
timed.save();
- final DAppMetric metric = timed.getMetric();
- final String group = metric.getRollupGroup();
- if (group != null) {
- // rollup group in memory aggregation
- final DAppMetric globalMetric = globalMetrics.get(group);
- if (globalMetric == null) {
- log.warn("skip unknown group metric [{}]", group);
- } else {
- rollupGroups.addTimed(globalMetric, timed);
- }
- }
}
private void add(DGaugeRollupM1 gauge) {
gauge.save();
- final DAppMetric metric = gauge.getMetric();
- final String group = metric.getRollupGroup();
- if (group != null) {
- // rollup group in memory aggregation
- final DAppMetric globalMetric = globalMetrics.get(group);
- if (globalMetric == null) {
- log.warn("skip unknown group metric [{}]", group);
- } else {
- rollupGroups.addGauge(globalMetric, gauge);
- }
- }
}
}
diff --git a/server/src/main/java/org/ebean/monitor/rollup/RollupGroups.java b/server/src/main/java/org/ebean/monitor/rollup/RollupGroups.java
deleted file mode 100644
index 20422de..0000000
--- a/server/src/main/java/org/ebean/monitor/rollup/RollupGroups.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package org.ebean.monitor.rollup;
-
-import org.ebean.monitor.domain.DAppDatabase;
-import org.ebean.monitor.domain.DAppMetric;
-import org.ebean.monitor.domain.DGaugeRollupM1;
-import org.ebean.monitor.domain.DTimedRollupM1;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * In memory rollup/aggregation for IUD & L2 cache "rollup group" metrics.
- */
-public class RollupGroups {
-
- private final Map timedMap = new HashMap<>();
- private final Map gaugeMap = new HashMap<>();
- private int count;
-
- public void addGauge(DAppMetric group, DGaugeRollupM1 gauge) {
- count++;
- final String key = key(group, gauge);
- final DGaugeRollupM1 agg = gaugeMap.get(key);
- if (agg == null) {
- gaugeMap.put(key, gauge.createRollupGroup(group));
- } else {
- agg.aggregate(gauge);
- }
- }
-
- public void addTimed(DAppMetric group, DTimedRollupM1 timed) {
- count++;
- final String key = key(group, timed);
- final DTimedRollupM1 agg = timedMap.get(key);
- if (agg == null) {
- timedMap.put(key, timed.createRollupGroup(group));
- } else {
- agg.aggregate(timed);
- }
- }
-
- public int getCount() {
- return count;
- }
-
- private String key(DAppMetric group, DGaugeRollupM1 entry) {
- return group.getName() + "|" + entry.getEnv().getId() + "|" + entry.getApp().getId();
- }
-
- private String key(DAppMetric group, DTimedRollupM1 entry) {
- final DAppDatabase db = entry.getDb();
- int dbId = (db == null) ? 0 : db.getId();
- return group.getName() + "|" + entry.getEnv().getId() + "|" + entry.getApp().getId() + "|" + dbId;
- }
-
- /**
- * Save the gauge rollup groups.
- */
- public void saveGauges() {
- for (DGaugeRollupM1 value : gaugeMap.values()) {
- value.save();
- }
- gaugeMap.clear();
- }
-
- /**
- * Save the timed rollup groups.
- */
- public void saveTimed() {
- for (DTimedRollupM1 entry : timedMap.values()) {
- entry.save();
- }
- timedMap.clear();
- }
-}
diff --git a/server/src/main/resources/ui/partial/app-metrics.mustache b/server/src/main/resources/ui/partial/app-metrics.mustache
index 441f2f5..d574213 100644
--- a/server/src/main/resources/ui/partial/app-metrics.mustache
+++ b/server/src/main/resources/ui/partial/app-metrics.mustache
@@ -7,7 +7,6 @@
| Name |
Key |
Loc |
- Group |
@@ -17,7 +16,6 @@
{{ name }} |
{{ key }} |
{{ loc }} |
- {{ rollupGroup }} |
{{/metrics}}
diff --git a/server/src/test/java/org/ebean/monitor/ingest/DeriveGroupTest.java b/server/src/test/java/org/ebean/monitor/ingest/DeriveGroupTest.java
deleted file mode 100644
index 9fa4bd5..0000000
--- a/server/src/test/java/org/ebean/monitor/ingest/DeriveGroupTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.ebean.monitor.ingest;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class DeriveGroupTest {
-
- @Test
- public void of_expect_null() {
- assertNull(DeriveGroup.of("l2n"));
- assertNull(DeriveGroup.of("other"));
- assertNull(DeriveGroup.of("other.hit"));
- }
-
- @Test
- public void of_l2NearCache() {
- assertEquals("l2n.hit", DeriveGroup.of("l2n.DOrg_N.hit"));
- assertEquals("l2n.miss", DeriveGroup.of("l2n.DOrg_N.miss"));
- assertEquals("l2n.put", DeriveGroup.of("l2n.DOrg_N.put"));
- assertEquals("l2n.evict", DeriveGroup.of("l2n.DOrg_N.evict"));
- }
-
- @Test
- public void of_l2RemoteCache() {
- assertEquals("l2r.hit", DeriveGroup.of("l2r.DOrg_N.hit"));
- assertEquals("l2r.miss", DeriveGroup.of("l2r.DOrg_N.miss"));
- assertEquals("l2r.put", DeriveGroup.of("l2r.DOrg_N.put"));
- assertEquals("l2r.evict", DeriveGroup.of("l2r.DOrg_N.evict"));
- }
-
- @Test
- public void of_iud() {
- assertEquals("iud.insert", DeriveGroup.of("iud.DOrg.insert"));
- assertEquals("iud.insert", DeriveGroup.of("iud.DOrg.insertBatch"));
- assertEquals("iud.update", DeriveGroup.of("iud.DOrg.update"));
- assertEquals("iud.update", DeriveGroup.of("iud.DOrg.updateBatch"));
- assertEquals("iud.delete", DeriveGroup.of("iud.DOrg.delete"));
- assertEquals("iud.delete", DeriveGroup.of("iud.DOrg.deleteBatch"));
-
- assertEquals("iud.junk", DeriveGroup.of("iud.DOrg.junk"));
- assertEquals("iud.insert", DeriveGroup.of("iud.DOrg.insertJunk"));
- }
-}