|
@@ -22,10 +22,7 @@ import org.apache.commons.logging.LogFactory;
|
|
|
import org.apache.hadoop.conf.Configuration;
|
|
|
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
|
|
|
import org.apache.hadoop.metrics.*;
|
|
|
-import org.apache.hadoop.metrics.jvm.JvmMetrics;
|
|
|
import org.apache.hadoop.metrics.util.MetricsIntValue;
|
|
|
-import org.apache.hadoop.metrics.util.MetricsTimeVaryingInt;
|
|
|
-import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
|
|
|
|
|
|
/**
|
|
|
*
|
|
@@ -42,7 +39,6 @@ import org.apache.hadoop.metrics.util.MetricsTimeVaryingRate;
|
|
|
public class FSNamesystemMetrics implements Updater {
|
|
|
private static Log log = LogFactory.getLog(FSNamesystemMetrics.class);
|
|
|
private final MetricsRecord metricsRecord;
|
|
|
- private FSNamesystem fsNameSystem;
|
|
|
|
|
|
public MetricsIntValue filesTotal = new MetricsIntValue("FilesTotal");
|
|
|
public MetricsIntValue blocksTotal = new MetricsIntValue("BlocksTotal");
|
|
@@ -53,9 +49,8 @@ public class FSNamesystemMetrics implements Updater {
|
|
|
public MetricsIntValue pendingReplicationBlocks = new MetricsIntValue("PendingReplicationBlocks");
|
|
|
public MetricsIntValue underReplicatedBlocks = new MetricsIntValue("UnderReplicatedBlocks");
|
|
|
public MetricsIntValue scheduledReplicationBlocks = new MetricsIntValue("ScheduledReplicationBlocks");
|
|
|
- public FSNamesystemMetrics(Configuration conf, FSNamesystem fsNameSystem) {
|
|
|
+ public FSNamesystemMetrics(Configuration conf) {
|
|
|
String sessionId = conf.get("session.id");
|
|
|
- this.fsNameSystem = fsNameSystem;
|
|
|
|
|
|
// Create a record for FSNamesystem metrics
|
|
|
MetricsContext metricsContext = MetricsUtil.getContext("dfs");
|
|
@@ -65,10 +60,6 @@ public class FSNamesystemMetrics implements Updater {
|
|
|
log.info("Initializing FSNamesystemMeterics using context object:" +
|
|
|
metricsContext.getClass().getName());
|
|
|
}
|
|
|
- public void shutdown() {
|
|
|
- if (fsNameSystem != null)
|
|
|
- fsNameSystem.shutdown();
|
|
|
- }
|
|
|
|
|
|
private int roundBytesToGBytes(long bytes) {
|
|
|
return Math.round(((float)bytes/(1024 * 1024 * 1024)));
|
|
@@ -89,6 +80,7 @@ public class FSNamesystemMetrics implements Updater {
|
|
|
*/
|
|
|
public void doUpdates(MetricsContext unused) {
|
|
|
synchronized (this) {
|
|
|
+ FSNamesystem fsNameSystem = FSNamesystem.getFSNamesystem();
|
|
|
filesTotal.set((int)fsNameSystem.getFilesTotal());
|
|
|
filesTotal.pushMetric(metricsRecord);
|
|
|
|