diff options
author | Geir Storli <geirst@oath.com> | 2018-03-20 15:17:01 +0100 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2018-03-20 15:17:01 +0100 |
commit | ee445011cf66284cd20600a2060f8a0933ad3c5f (patch) | |
tree | d70f20bbdd42cecede6442e9b2f55419ca22792b /clustercontroller-core | |
parent | dafd2b5b69a9704858b5da0f5066c2f0a89951a7 (diff) |
Add buckets total to per bucket space stats on html status page.
Diffstat (limited to 'clustercontroller-core')
3 files changed, 33 insertions, 13 deletions
diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentCluster.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentCluster.java index 27612bb8b7d..6ff297b4a31 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentCluster.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/ContentCluster.java @@ -73,6 +73,7 @@ public class ContentCluster { timer, state, statsAggregator, + options.minMergeCompletionRatio, options.maxPrematureCrashes, eventLog, clusterName, diff --git a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/VdsClusterHtmlRendrer.java b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/VdsClusterHtmlRendrer.java index 80aed35cfa1..551eb34f8fa 100644 --- a/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/VdsClusterHtmlRendrer.java +++ b/clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/VdsClusterHtmlRendrer.java @@ -66,6 +66,7 @@ public class VdsClusterHtmlRendrer { final Timer timer, final ClusterState state, final ClusterStatsAggregator statsAggregator, + final double minMergeCompletionRatio, final int maxPrematureCrashes, final EventLog eventLog, final String pathPrefix, @@ -78,6 +79,7 @@ public class VdsClusterHtmlRendrer { timer, state, statsAggregator, + minMergeCompletionRatio, maxPrematureCrashes, eventLog, pathPrefix, @@ -88,6 +90,7 @@ public class VdsClusterHtmlRendrer { timer, state, statsAggregator, + minMergeCompletionRatio, maxPrematureCrashes, eventLog, pathPrefix, @@ -138,7 +141,9 @@ public class VdsClusterHtmlRendrer { .addCell(new HtmlTable.Cell("SSV<sup>4)</sup>")) .addCell(new HtmlTable.Cell("PC<sup>5)</sup>")) .addCell(new HtmlTable.Cell("ELW<sup>6)</sup>")) - .addCell(new HtmlTable.Cell("Buckets pending") + .addCell(new HtmlTable.Cell(FixedBucketSpaces.defaultSpace() + " buckets") + .addProperties(new HtmlTable.CellProperties().setColSpan(2).setRowSpan(1))) + .addCell(new HtmlTable.Cell(FixedBucketSpaces.globalSpace() + " buckets") .addProperties(new HtmlTable.CellProperties().setColSpan(2).setRowSpan(1))) .addCell(new HtmlTable.Cell("Start Time")) .addCell(new HtmlTable.Cell("RPC Address"))); @@ -146,8 +151,10 @@ public class VdsClusterHtmlRendrer { .addCell(new HtmlTable.Cell("Reported")) .addCell(new HtmlTable.Cell("Wanted")) .addCell(new HtmlTable.Cell("System")) - .addCell(new HtmlTable.Cell(FixedBucketSpaces.defaultSpace())) - .addCell(new HtmlTable.Cell(FixedBucketSpaces.globalSpace()))); + .addCell(new HtmlTable.Cell("Pending")) + .addCell(new HtmlTable.Cell("Total")) + .addCell(new HtmlTable.Cell("Pending")) + .addCell(new HtmlTable.Cell("Total"))); } private void renderNodesOneType( @@ -156,6 +163,7 @@ public class VdsClusterHtmlRendrer { final Timer timer, final ClusterState state, final ClusterStatsAggregator statsAggregator, + final double minMergeCompletionRatio, final int maxPrematureCrashes, final EventLog eventLog, final String pathPrefix, @@ -265,13 +273,17 @@ public class VdsClusterHtmlRendrer { row.getLastCell().addProperties(WARNING_PROPERTY); } - // Buckets pending ('default' and 'global' spaces) + // Bucket stats for 'default' and 'global' spaces if (nodeType.equals(NodeType.STORAGE)) { - addBucketsPending(row, getStatsForContentNode(statsAggregator, nodeInfo, FixedBucketSpaces.defaultSpace())); - addBucketsPending(row, getStatsForContentNode(statsAggregator, nodeInfo, FixedBucketSpaces.globalSpace())); + addBucketStats(row, getStatsForContentNode(statsAggregator, nodeInfo, FixedBucketSpaces.defaultSpace()), + minMergeCompletionRatio); + addBucketStats(row, getStatsForContentNode(statsAggregator, nodeInfo, FixedBucketSpaces.globalSpace()), + minMergeCompletionRatio); } else { - addBucketsPending(row, getStatsForDistributorNode(statsAggregator, nodeInfo, FixedBucketSpaces.defaultSpace())); - addBucketsPending(row, getStatsForDistributorNode(statsAggregator, nodeInfo, FixedBucketSpaces.globalSpace())); + addBucketStats(row, getStatsForDistributorNode(statsAggregator, nodeInfo, FixedBucketSpaces.defaultSpace()), + minMergeCompletionRatio); + addBucketStats(row, getStatsForDistributorNode(statsAggregator, nodeInfo, FixedBucketSpaces.globalSpace()), + minMergeCompletionRatio); } // Start time @@ -313,19 +325,25 @@ public class VdsClusterHtmlRendrer { return nodeStats.getBucketSpace(bucketSpace); } - private static void addBucketsPending(HtmlTable.Row row, ContentNodeStats.BucketSpaceStats bucketSpaceStats) { + private static void addBucketStats(HtmlTable.Row row, ContentNodeStats.BucketSpaceStats bucketSpaceStats, + double minMergeCompletionRatio) { if (bucketSpaceStats != null) { long bucketsPending = bucketSpaceStats.getBucketsPending(); - String cellValue = String.valueOf(bucketsPending); + long bucketsTotal = bucketSpaceStats.getBucketsTotal(); + String cellValuePending = String.valueOf(bucketsPending); + String cellValueTotal = String.valueOf(bucketsTotal); if (!bucketSpaceStats.valid()) { - cellValue += "?"; + cellValuePending += "?"; + cellValueTotal += "?"; } - row.addCell(new HtmlTable.Cell(cellValue)); - if (bucketsPending > 0 || !bucketSpaceStats.valid()) { + row.addCell(new HtmlTable.Cell(cellValuePending)); + if (bucketSpaceStats.mayHaveBucketsPending(minMergeCompletionRatio)) { row.getLastCell().addProperties(WARNING_PROPERTY); } + row.addCell(new HtmlTable.Cell(cellValueTotal)); } else { row.addCell(new HtmlTable.Cell("-").addProperties(CENTERED_PROPERTY)); + row.addCell(new HtmlTable.Cell("-").addProperties(CENTERED_PROPERTY)); } } diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendrerTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendrerTest.java index 6dc260d6bf3..f5adf644c28 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendrerTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/ContentClusterHtmlRendrerTest.java @@ -57,6 +57,7 @@ public class ContentClusterHtmlRendrerTest { new FakeTimer(), state, statsAggregator, + 1.0, 10, eventLog, "pathPrefix", |