diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt index bc9ff2f33a4..83b0adf5b54 100644 --- a/solr/CHANGES.txt +++ b/solr/CHANGES.txt @@ -85,6 +85,9 @@ New Features * SOLR-13440: Support saving/restoring autoscaling state for repeatable simulations. (ab) +* SOLR-11558: It would be nice if the Graph section of the Cloud tab in the Admin UI could give some more + information about the replicas of a collection (Erick Erickson) + Other Changes ---------------------- diff --git a/solr/webapp/web/js/angular/controllers/cloud.js b/solr/webapp/web/js/angular/controllers/cloud.js index 0d49df2db93..296c75dd7bf 100644 --- a/solr/webapp/web/js/angular/controllers/cloud.js +++ b/solr/webapp/web/js/angular/controllers/cloud.js @@ -731,7 +731,9 @@ var graphSubController = function ($scope, Zookeeper) { name: shard_status == "shard-inactive" ? s + ' (inactive)' : s, data: { type: 'shard', - state: shard_status + state: shard_status, + range: state[c].shards[s].range + }, children: nodes }; @@ -741,13 +743,20 @@ var graphSubController = function ($scope, Zookeeper) { var collection = { name: c, data: { - type: 'collection' + type: 'collection', + pullReplicas: state[c].pullReplicas, + replicationFactor: state[c].replicationFactor, + router: state[c].router.name, + maxShardsPerNode: state[c].maxShardsPerNode, + autoAddReplicas: state[c].autoAddReplicas, + nrtReplicas: state[c].nrtReplicas, + tlogReplicas: state[c].tlogReplicas, + numShards: shards.length }, children: shards }; graph_data.children.push(collection); } - $scope.helperData.protocol = $.unique($scope.helperData.protocol); $scope.helperData.host = $.unique($scope.helperData.host); $scope.helperData.hostname = $.unique($scope.helperData.hostname); @@ -844,22 +853,45 @@ solrAdminApp.directive('graph', function(Constants) { }; var helper_tooltip_text = function (d) { - if (!d.data || !d.data.uri) { - return tooltip; + if (!d.data) { + return tooltip; + } + var tooltip; + + if (! d.data.type) { + return tooltip; } - var tooltip = d.data.uri.core_node + " {
"; - if (0 !== scope.helperData.core.length) { - tooltip += "core: [" + d.data.uri.core + "],
"; + if (d.data.type == 'collection') { + tooltip = d.name + " {
"; + tooltip += "numShards: [" + d.data.numShards + "],
"; + tooltip += "maxShardsPerNode: [" + d.data.maxShardsPerNode + "],
"; + tooltip += "router: [" + d.data.router + "],
"; + tooltip += "autoAddReplicas: [" + d.data.autoAddReplicas + "],
"; + tooltip += "replicationFactor: [" + d.data.replicationFactor + "],
"; + tooltip += "nrtReplicas: [" + d.data.nrtReplicas + "],
"; + tooltip += "pullReplicas: [" + d.data.pullReplicas + "],
"; + tooltip += "tlogReplicas: [" + d.data.tlogReplicas + "],
"; + tooltip += "}"; + } else if (d.data.type == 'shard') { + tooltip = d.name + " {
"; + tooltip += "range: [" + d.data.range + "],
"; + tooltip += "state: [" + d.data.state + "],
"; + tooltip += "}"; + } else if (d.data.type == 'node') { + tooltip = d.data.uri.core_node + " {
"; + + if (0 !== scope.helperData.core.length) { + tooltip += "core: [" + d.data.uri.core + "],
"; + } + + if (0 !== scope.helperData.node_name.length) { + tooltip += "node_name: [" + d.data.uri.node_name + "],
"; + } + tooltip += "}"; } - if (0 !== scope.helperData.node_name.length) { - tooltip += "node_name: [" + d.data.uri.node_name + "],
"; - } - - tooltip += "}"; - return tooltip; }; @@ -869,7 +901,6 @@ solrAdminApp.directive('graph', function(Constants) { } var name = d.data.uri.hostname; - if (1 !== scope.helperData.protocol.length) { name = d.data.uri.protocol + '//' + name; }