diff --git a/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn-overview.html b/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn-overview.html
index d4f7a17c0b76..024016360342 100644
--- a/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn-overview.html
+++ b/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn-overview.html
@@ -14,8 +14,38 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
+
+
DataNode UI
+
+
+Volume Information
+
+
+ | Directory |
+ Storage Type |
+ Volume Type |
+ Used Space |
+ Available Space |
+ Reserved |
+ Total Capacity |
+
+
+
+ | {{volumeInfo["tag.StorageDirectory"]}} |
+ {{volumeInfo["tag.StorageType"]}} |
+ {{volumeInfo["tag.VolumeType"]}} |
+ {{volumeInfo.Used}} |
+ {{volumeInfo.Available}} |
+ {{volumeInfo.Reserved}} |
+ {{volumeInfo.TotalCapacity}} |
+
+
+
\ No newline at end of file
diff --git a/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn.js b/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn.js
index c43eb42bdc25..adc507acce9f 100644
--- a/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn.js
+++ b/hadoop-hdds/container-service/src/main/resources/webapps/hddsDatanode/dn.js
@@ -26,10 +26,30 @@
},
controller: function ($http) {
var ctrl = this;
- $http.get("jmx?qry=Hadoop:service=HddsDatanode,name=StorageContainerMetrics")
+ $http.get("jmx?qry=Hadoop:service=HddsDatanode,name=VolumeInfoMetrics*")
.then(function (result) {
- ctrl.dnmetrics = result.data.beans[0];
+ ctrl.dnmetrics = result.data.beans;
+ ctrl.dnmetrics.forEach(volume => {
+ volume.Used = transform(volume.Used);
+ volume.Available = transform(volume.Available);
+ volume.Reserved = transform(volume.Reserved);
+ volume.TotalCapacity = transform(volume.TotalCapacity);
+ })
});
}
});
+ function transform(v) {
+ var UNITS = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'ZB'];
+ var prev = 0, i = 0;
+ while (Math.floor(v) > 0 && i < UNITS.length) {
+ prev = v;
+ v /= 1024;
+ i += 1;
+ }
+ if (i > 0 && i < UNITS.length) {
+ v = prev;
+ i -= 1;
+ }
+ return Math.round(v * 100) / 100 + ' ' + UNITS[i];
+ }
})();