diff options
author | Jon Bratseth <bratseth@oath.com> | 2021-03-03 22:17:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-03 22:17:13 +0100 |
commit | 3d63d651a198c203f130ee0b53e62f511520e3e3 (patch) | |
tree | 058b25b4f8dfef0edd7dc0483ce6d82382cbe677 | |
parent | 26ba1a2c7e3882ff0649e9a6981887d4b7807f67 (diff) | |
parent | 3a117d75079f4f20839c6ecf6fe9eaed16aa2953 (diff) |
Merge pull request #16774 from vespa-engine/revert-16771-revert-16753-revert-16745-bratseth/query-rate-autoscaling-metric
Revert "Revert "Revert "Add query.rate to the autoscaling metrics"""
9 files changed, 29 insertions, 59 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java index 6bb3a62f234..347d0ebce6c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/AutoscalingMetrics.java @@ -20,8 +20,7 @@ public class AutoscalingMetrics { "mem.util", "disk.util", "application_generation", - "in_service", - "queries.rate")); + "in_service")); } private static Set<Metric> metrics(String ... metrics) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricSnapshot.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricSnapshot.java index 82812592809..d5072475cd9 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricSnapshot.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricSnapshot.java @@ -18,11 +18,9 @@ public class MetricSnapshot implements Comparable<MetricSnapshot> { private final long generation; private final boolean inService; private final boolean stable; - private final double queryRate; - public MetricSnapshot(Instant at, double cpu, double memory, double disk, - long generation, boolean inService, boolean stable, - double queryRate) { + public MetricSnapshot(Instant at, double cpu, double memory, double disk, long generation, + boolean inService, boolean stable) { this.at = at; this.cpu = cpu; this.memory = memory; @@ -30,7 +28,6 @@ public class MetricSnapshot implements Comparable<MetricSnapshot> { this.generation = generation; this.inService = inService; this.stable = stable; - this.queryRate = queryRate; } public Instant at() { return at; } @@ -38,9 +35,6 @@ public class MetricSnapshot implements Comparable<MetricSnapshot> { public double memory() { return memory; } public double disk() { return disk; } - /** Queries per second */ - public double queryRate() { return queryRate; } - /** The configuration generation at the time of this measurement, or -1 if not known */ public long generation() { return generation; } @@ -59,8 +53,7 @@ public class MetricSnapshot implements Comparable<MetricSnapshot> { " disk: " + disk + " generation: " + generation + " inService: " + inService + - " stable: " + stable + - " queryRate: " + queryRate; + " stable: " + stable; } } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricsResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricsResponse.java index d6661b89536..341a2028f05 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricsResponse.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/MetricsResponse.java @@ -65,8 +65,7 @@ public class MetricsResponse { Metric.disk.from(values), (long)Metric.generation.from(values), Metric.inService.from(values) > 0, - clusterIsStable(node.get(), applicationNodes, nodeRepository), - Metric.queryRate.from(values)))); + clusterIsStable(node.get(), applicationNodes, nodeRepository)))); } private boolean clusterIsStable(Node node, NodeList applicationNodes, NodeRepository nodeRepository) { @@ -116,11 +115,6 @@ public class MetricsResponse { public String metricResponseName() { return "in_service"; } double convertValue(double metricValue) { return (float)metricValue; } // Really a boolean double defaultValue() { return 1.0; } - }, - queryRate { // queries per second - public String metricResponseName() { return "queries.rate"; } - double convertValue(double metricValue) { return (float)metricValue; } - double defaultValue() { return 0.0; } }; /** The name of this metric as emitted from its source */ diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java index 37e70e3539a..81401f9f743 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDb.java @@ -110,7 +110,6 @@ public class QuestMetricsDb extends AbstractComponent implements MetricsDb { row.putLong(5, snapshot.getSecond().generation()); row.putBool(6, snapshot.getSecond().inService()); row.putBool(7, snapshot.getSecond().stable()); - row.putFloat(8, (float)snapshot.getSecond().queryRate()); row.append(); } writer.commit(); @@ -184,17 +183,28 @@ public class QuestMetricsDb extends AbstractComponent implements MetricsDb { private void ensureExists(String table) { SqlExecutionContext context = newContext(); if (0 == engine.getStatus(context.getCairoSecurityContext(), new Path(), table)) { // table exists - ensureTableIsUpdated(table, context); + ensureUpdated(table, context); } else { - createTable(table, context); + create(table, context); } } - private void createTable(String table, SqlExecutionContext context) { + private void ensureUpdated(String table, SqlExecutionContext context) { + try (SqlCompiler compiler = new SqlCompiler(engine)) { + if (0 == engine.getStatus(context.getCairoSecurityContext(), new Path(), table)) { + ensureColumnExists("inService", "boolean", table, compiler, context); // TODO: Remove after December 2020 + ensureColumnExists("stable", "boolean", table, compiler, context); // TODO: Remove after December 2020 + } + } catch (SqlException e) { + repair(e); + } + } + + private void create(String table, SqlExecutionContext context) { try (SqlCompiler compiler = new SqlCompiler(engine)) { compiler.compile("create table " + table + " (hostname string, at timestamp, cpu_util float, mem_total_util float, disk_util float," + - " application_generation long, inService boolean, stable boolean, queries_rate float)" + + " application_generation long, inService boolean, stable boolean)" + " timestamp(at)" + "PARTITION BY DAY;", context); @@ -206,16 +216,6 @@ public class QuestMetricsDb extends AbstractComponent implements MetricsDb { } } - private void ensureTableIsUpdated(String table, SqlExecutionContext context) { - try (SqlCompiler compiler = new SqlCompiler(engine)) { - if (0 == engine.getStatus(context.getCairoSecurityContext(), new Path(), table)) { - ensureColumnExists("queries_rate", "float", table, compiler, context); // TODO: Remove after March 2021 - } - } catch (SqlException e) { - repair(e); - } - } - private void ensureColumnExists(String column, String columnType, String table, SqlCompiler compiler, SqlExecutionContext context) throws SqlException { if (columnNamesOf(table, compiler, context).contains(column)) return; @@ -272,8 +272,7 @@ public class QuestMetricsDb extends AbstractComponent implements MetricsDb { record.getFloat(4), record.getLong(5), record.getBool(6), - record.getBool(7), - record.getFloat(8))); + record.getBool(7))); } } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java index 156542ef1d4..77c3a5209e2 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/AutoscalingTester.java @@ -143,8 +143,7 @@ class AutoscalingTester { disk, 0, true, - true, - 0.0)))); + true)))); } } } @@ -175,8 +174,7 @@ class AutoscalingTester { disk, 0, true, - true, - 0.0)))); + true)))); } } } @@ -197,8 +195,7 @@ class AutoscalingTester { disk, generation, inService, - stable, - 0.0)))); + stable)))); } } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java index c1c94c7dd24..02d258313db 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/NodeMetricsDbTest.java @@ -40,14 +40,7 @@ public class NodeMetricsDbTest { MetricsDb db = MetricsDb.createTestInstance(tester.nodeRepository()); Collection<Pair<String, MetricSnapshot>> values = new ArrayList<>(); for (int i = 0; i < 40; i++) { - values.add(new Pair<>(node0, new MetricSnapshot(clock.instant(), - 0.9f, - 0.6f, - 0.6f, - 0, - true, - false, - 0.0))); + values.add(new Pair<>(node0, new MetricSnapshot(clock.instant(), 0.9f, 0.6f, 0.6f, 0, true, false))); clock.advance(Duration.ofMinutes(120)); } db.add(values); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java index 70f9d581816..6090d2d5f34 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/autoscale/QuestMetricsDbTest.java @@ -54,7 +54,6 @@ public class QuestMetricsDbTest { assertEquals(0.2, snapshot.memory(), delta); assertEquals(0.4, snapshot.disk(), delta); assertEquals(1, snapshot.generation(), delta); - assertEquals(30, snapshot.queryRate(), delta); // Read all from 2 hosts List<NodeTimeseries> nodeTimeSeries2 = db.getNodeTimeseries(Duration.between(startTime, clock.instant()), @@ -182,8 +181,7 @@ public class QuestMetricsDbTest { i * 0.4, i % 100, true, - true, - 30.0))); + true))); clock.advance(sampleRate); } return timeseries; @@ -199,8 +197,7 @@ public class QuestMetricsDbTest { i * 0.4, i % 100, true, - false, - 0.0))); + false))); } return timeseries; } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTester.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTester.java index 1b531fd3237..887ce158e09 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTester.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/AutoscalingMaintainerTester.java @@ -81,8 +81,7 @@ public class AutoscalingMaintainerTester { disk, generation, true, - true, - 0.0)))); + true)))); } } diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java index d5b7903b94c..78965f0b902 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/ScalingSuggestionsMaintainerTest.java @@ -131,8 +131,7 @@ public class ScalingSuggestionsMaintainerTest { disk, generation, true, - true, - 0.0)))); + true)))); } } |