diff --git a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeInfoMetrics.java b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeInfoMetrics.java index c6e17d5cfd5..27996eb44b7 100644 --- a/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeInfoMetrics.java +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/volume/VolumeInfoMetrics.java @@ -61,6 +61,11 @@ public class VolumeInfoMetrics implements MetricsSource { Interns.info("MinFreeSpace", "Minimum free space threshold (soft limit) reported to SCM, " + "derived from hdds.datanode.volume.min.free.space.percent / hdds.datanode.volume.min.free.space"); + private static final MetricsInfo HARD_MIN_FREE_SPACE = + Interns.info("HardMinFreeSpace", + "Minimum free space threshold (hard limit) enforced locally for writes, " + + "derived from hdds.datanode.volume.min.free.space.hard.limit.percent " + + "/ hdds.datanode.volume.min.free.space"); private static final MetricsInfo NON_OZONE_USED = Interns.info("NonOzoneUsed", "Space on the filesystem consumed by non-Ozone workloads " + @@ -254,6 +259,7 @@ public void getMetrics(MetricsCollector collector, boolean all) { .addGauge(FS_AVAILABLE, fsUsage.getAvailable()) .addGauge(FS_USED, fsUsage.getCapacity() - fsUsage.getAvailable()) .addGauge(MIN_FREE_SPACE, volume.getReportedFreeSpaceToSpare(ozoneCapacity)) + .addGauge(HARD_MIN_FREE_SPACE, volume.getFreeSpaceToSpare(ozoneCapacity)) .addGauge(NON_OZONE_USED, VolumeUsage.getOtherUsed(fsUsage)); } } 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 9b15a0bf374..e25ce4a9c82 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 @@ -61,6 +61,7 @@

Volume Information

Filesystem Available Filesystem Used Min Free Space + Hard Min Free Space Non-Ozone Used Containers State @@ -79,6 +80,7 @@

Volume Information

{{volumeInfo.FilesystemAvailable}} {{volumeInfo.FilesystemUsed}} {{volumeInfo.MinFreeSpace}} + {{volumeInfo.HardMinFreeSpace}} {{volumeInfo.NonOzoneUsed}} {{volumeInfo.Containers}} {{volumeInfo["tag.VolumeState"]}} 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 3e6c36662dd..1f5ae99f15e 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 @@ -38,6 +38,7 @@ volume.FilesystemAvailable = transform(volume.FilesystemAvailable); volume.FilesystemUsed = transform(volume.FilesystemUsed); volume.MinFreeSpace = transform(volume.MinFreeSpace); + volume.HardMinFreeSpace = transform(volume.HardMinFreeSpace); volume.NonOzoneUsed = transform(volume.NonOzoneUsed); }) }); diff --git a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeInfoMetrics.java b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeInfoMetrics.java index bca6170d6b6..c428be693db 100644 --- a/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeInfoMetrics.java +++ b/hadoop-hdds/container-service/src/test/java/org/apache/hadoop/ozone/container/common/volume/TestVolumeInfoMetrics.java @@ -45,6 +45,7 @@ void testVolumeInfoMetricsExposeOzoneAndFilesystemGauges() { when(volume.getCommittedBytes()).thenReturn(10L); when(volume.getContainers()).thenReturn(3L); when(volume.getReportedFreeSpaceToSpare(anyLong())).thenReturn(20L); + when(volume.getFreeSpaceToSpare(anyLong())).thenReturn(15L); VolumeUsage volumeUsage = mock(VolumeUsage.class); when(volume.getVolumeUsage()).thenReturn(volumeUsage); @@ -80,6 +81,7 @@ void testVolumeInfoMetricsExposeOzoneAndFilesystemGauges() { assertThat(findMetric(all, "FilesystemUsed")).isEqualTo(900L); // FilesystemCapacity - FilesystemAvailable assertThat(findMetric(all, "MinFreeSpace")).isEqualTo(20L); + assertThat(findMetric(all, "HardMinFreeSpace")).isEqualTo(15L); // NonOzoneUsed = FilesystemUsed - OzoneUsed = 900 - 500 assertThat(findMetric(all, "NonOzoneUsed")).isEqualTo(400L); } finally {