HDFS-8721. Add a metric for number of encryption zones. Contributed by Rakesh R.
(cherry picked from commit cb03768b1b
)
This commit is contained in:
parent
b728edce0f
commit
57d55d40dd
|
@ -215,6 +215,7 @@ Each metrics record contains tags such as HAState and Hostname as additional inf
|
||||||
| `TotalLoad` | Current number of connections |
|
| `TotalLoad` | Current number of connections |
|
||||||
| `SnapshottableDirectories` | Current number of snapshottable directories |
|
| `SnapshottableDirectories` | Current number of snapshottable directories |
|
||||||
| `Snapshots` | Current number of snapshots |
|
| `Snapshots` | Current number of snapshots |
|
||||||
|
| `NumEncryptionZones` | Current number of encryption zones |
|
||||||
| `BlocksTotal` | Current number of allocated blocks in the system |
|
| `BlocksTotal` | Current number of allocated blocks in the system |
|
||||||
| `FilesTotal` | Current number of files and directories |
|
| `FilesTotal` | Current number of files and directories |
|
||||||
| `PendingReplicationBlocks` | Current number of blocks pending to be replicated |
|
| `PendingReplicationBlocks` | Current number of blocks pending to be replicated |
|
||||||
|
|
|
@ -391,6 +391,9 @@ Release 2.8.0 - UNRELEASED
|
||||||
HDFS-7483. Display information per tier on the Namenode UI.
|
HDFS-7483. Display information per tier on the Namenode UI.
|
||||||
(Benoy Antony and wheat9 via wheat9)
|
(Benoy Antony and wheat9 via wheat9)
|
||||||
|
|
||||||
|
HDFS-8721. Add a metric for number of encryption zones.
|
||||||
|
(Rakesh R via cnauroth)
|
||||||
|
|
||||||
OPTIMIZATIONS
|
OPTIMIZATIONS
|
||||||
|
|
||||||
HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than
|
HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than
|
||||||
|
|
|
@ -360,4 +360,11 @@ public class EncryptionZoneManager {
|
||||||
final boolean hasMore = (numResponses < tailMap.size());
|
final boolean hasMore = (numResponses < tailMap.size());
|
||||||
return new BatchedListEntries<EncryptionZone>(zones, hasMore);
|
return new BatchedListEntries<EncryptionZone>(zones, hasMore);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return number of encryption zones.
|
||||||
|
*/
|
||||||
|
public int getNumEncryptionZones() {
|
||||||
|
return encryptionZones.size();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4072,6 +4072,12 @@ public class FSNamesystem implements Namesystem, FSNamesystemMBean,
|
||||||
return JSON.toString(info);
|
return JSON.toString(info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override // FSNamesystemMBean
|
||||||
|
@Metric({ "NumEncryptionZones", "The number of encryption zones" })
|
||||||
|
public int getNumEncryptionZones() {
|
||||||
|
return dir.ezManager.getNumEncryptionZones();
|
||||||
|
}
|
||||||
|
|
||||||
int getNumberOfDatanodes(DatanodeReportType type) {
|
int getNumberOfDatanodes(DatanodeReportType type) {
|
||||||
readLock();
|
readLock();
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -184,4 +184,9 @@ public interface FSNamesystemMBean {
|
||||||
* @return JSON string
|
* @return JSON string
|
||||||
*/
|
*/
|
||||||
public String getTopUserOpCounts();
|
public String getTopUserOpCounts();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the number of encryption zones in the system.
|
||||||
|
*/
|
||||||
|
int getNumEncryptionZones();
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,6 +97,8 @@ import static org.mockito.Mockito.any;
|
||||||
import static org.mockito.Mockito.anyString;
|
import static org.mockito.Mockito.anyString;
|
||||||
import static org.apache.hadoop.hdfs.DFSTestUtil.verifyFilesEqual;
|
import static org.apache.hadoop.hdfs.DFSTestUtil.verifyFilesEqual;
|
||||||
import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
|
import static org.apache.hadoop.test.GenericTestUtils.assertExceptionContains;
|
||||||
|
import static org.apache.hadoop.test.MetricsAsserts.assertGauge;
|
||||||
|
import static org.apache.hadoop.test.MetricsAsserts.getMetrics;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertNotEquals;
|
import static org.junit.Assert.assertNotEquals;
|
||||||
|
@ -120,6 +122,7 @@ public class TestEncryptionZones {
|
||||||
protected DistributedFileSystem fs;
|
protected DistributedFileSystem fs;
|
||||||
private File testRootDir;
|
private File testRootDir;
|
||||||
protected final String TEST_KEY = "test_key";
|
protected final String TEST_KEY = "test_key";
|
||||||
|
private static final String NS_METRICS = "FSNamesystem";
|
||||||
|
|
||||||
protected FileSystemTestWrapper fsWrapper;
|
protected FileSystemTestWrapper fsWrapper;
|
||||||
protected FileContextTestWrapper fcWrapper;
|
protected FileContextTestWrapper fcWrapper;
|
||||||
|
@ -358,6 +361,9 @@ public class TestEncryptionZones {
|
||||||
fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
|
fs.setSafeMode(SafeModeAction.SAFEMODE_LEAVE);
|
||||||
cluster.restartNameNode(true);
|
cluster.restartNameNode(true);
|
||||||
assertNumZones(numZones);
|
assertNumZones(numZones);
|
||||||
|
assertEquals("Unexpected number of encryption zones!", numZones, cluster
|
||||||
|
.getNamesystem().getNumEncryptionZones());
|
||||||
|
assertGauge("NumEncryptionZones", numZones, getMetrics(NS_METRICS));
|
||||||
assertZonePresent(null, zone1.toString());
|
assertZonePresent(null, zone1.toString());
|
||||||
|
|
||||||
// Verify newly added ez is present after restarting the NameNode
|
// Verify newly added ez is present after restarting the NameNode
|
||||||
|
|
|
@ -117,6 +117,11 @@ public class TestFSNamesystemMBean {
|
||||||
"PendingDeletionBlocks");
|
"PendingDeletionBlocks");
|
||||||
assertNotNull(pendingDeletionBlocks);
|
assertNotNull(pendingDeletionBlocks);
|
||||||
assertTrue(pendingDeletionBlocks instanceof Long);
|
assertTrue(pendingDeletionBlocks instanceof Long);
|
||||||
|
|
||||||
|
Object encryptionZones = mbs.getAttribute(mxbeanName,
|
||||||
|
"NumEncryptionZones");
|
||||||
|
assertNotNull(encryptionZones);
|
||||||
|
assertTrue(encryptionZones instanceof Integer);
|
||||||
} finally {
|
} finally {
|
||||||
if (cluster != null) {
|
if (cluster != null) {
|
||||||
cluster.shutdown();
|
cluster.shutdown();
|
||||||
|
|
Loading…
Reference in New Issue