HDFS-16459. RBF: register RBFMetrics in MetricsSystem for promethuessink (#3999)
This commit is contained in:
parent
cae749b076
commit
2f448acf39
@ -17,6 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.hadoop.hdfs.server.federation.metrics;
|
package org.apache.hadoop.hdfs.server.federation.metrics;
|
||||||
|
|
||||||
|
import static org.apache.hadoop.metrics2.impl.MsInfo.ProcessName;
|
||||||
import static org.apache.hadoop.util.Time.now;
|
import static org.apache.hadoop.util.Time.now;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -79,7 +80,11 @@ import org.apache.hadoop.hdfs.server.federation.store.records.MembershipStats;
|
|||||||
import org.apache.hadoop.hdfs.server.federation.store.records.MountTable;
|
import org.apache.hadoop.hdfs.server.federation.store.records.MountTable;
|
||||||
import org.apache.hadoop.hdfs.server.federation.store.records.RouterState;
|
import org.apache.hadoop.hdfs.server.federation.store.records.RouterState;
|
||||||
import org.apache.hadoop.hdfs.server.federation.store.records.StateStoreVersion;
|
import org.apache.hadoop.hdfs.server.federation.store.records.StateStoreVersion;
|
||||||
|
import org.apache.hadoop.metrics2.MetricsSystem;
|
||||||
|
import org.apache.hadoop.metrics2.annotation.Metric;
|
||||||
import org.apache.hadoop.metrics2.annotation.Metrics;
|
import org.apache.hadoop.metrics2.annotation.Metrics;
|
||||||
|
import org.apache.hadoop.metrics2.lib.DefaultMetricsSystem;
|
||||||
|
import org.apache.hadoop.metrics2.lib.MetricsRegistry;
|
||||||
import org.apache.hadoop.metrics2.util.MBeans;
|
import org.apache.hadoop.metrics2.util.MBeans;
|
||||||
import org.apache.hadoop.security.UserGroupInformation;
|
import org.apache.hadoop.security.UserGroupInformation;
|
||||||
import org.apache.hadoop.util.StringUtils;
|
import org.apache.hadoop.util.StringUtils;
|
||||||
@ -100,6 +105,8 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
private static final Logger LOG =
|
private static final Logger LOG =
|
||||||
LoggerFactory.getLogger(RBFMetrics.class);
|
LoggerFactory.getLogger(RBFMetrics.class);
|
||||||
|
|
||||||
|
private final MetricsRegistry registry = new MetricsRegistry("RBFMetrics");
|
||||||
|
|
||||||
/** Format for a date. */
|
/** Format for a date. */
|
||||||
private static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
|
private static final String DATE_FORMAT = "yyyy/MM/dd HH:mm:ss";
|
||||||
|
|
||||||
@ -171,6 +178,10 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
this.topTokenRealOwners = conf.getInt(
|
this.topTokenRealOwners = conf.getInt(
|
||||||
RBFConfigKeys.DFS_ROUTER_METRICS_TOP_NUM_TOKEN_OWNERS_KEY,
|
RBFConfigKeys.DFS_ROUTER_METRICS_TOP_NUM_TOKEN_OWNERS_KEY,
|
||||||
RBFConfigKeys.DFS_ROUTER_METRICS_TOP_NUM_TOKEN_OWNERS_KEY_DEFAULT);
|
RBFConfigKeys.DFS_ROUTER_METRICS_TOP_NUM_TOKEN_OWNERS_KEY_DEFAULT);
|
||||||
|
|
||||||
|
registry.tag(ProcessName, "Router");
|
||||||
|
MetricsSystem ms = DefaultMetricsSystem.instance();
|
||||||
|
ms.register(RBFMetrics.class.getName(), "RBFActivity Metrics", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -183,6 +194,8 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
if (this.federationBeanName != null) {
|
if (this.federationBeanName != null) {
|
||||||
MBeans.unregister(federationBeanName);
|
MBeans.unregister(federationBeanName);
|
||||||
}
|
}
|
||||||
|
MetricsSystem ms = DefaultMetricsSystem.instance();
|
||||||
|
ms.unregisterSource(RBFMetrics.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -458,53 +471,65 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumLiveNodes", "Number of live data nodes"})
|
||||||
public int getNumLiveNodes() {
|
public int getNumLiveNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfActiveDatanodes);
|
MembershipStats::getNumOfActiveDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumDeadNodes", "Number of dead data nodes"})
|
||||||
public int getNumDeadNodes() {
|
public int getNumDeadNodes() {
|
||||||
return getNameserviceAggregatedInt(MembershipStats::getNumOfDeadDatanodes);
|
return getNameserviceAggregatedInt(MembershipStats::getNumOfDeadDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumStaleNodes", "Number of stale data nodes"})
|
||||||
public int getNumStaleNodes() {
|
public int getNumStaleNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfStaleDatanodes);
|
MembershipStats::getNumOfStaleDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumDecommissioningNodes", "Number of Decommissioning data nodes"})
|
||||||
public int getNumDecommissioningNodes() {
|
public int getNumDecommissioningNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfDecommissioningDatanodes);
|
MembershipStats::getNumOfDecommissioningDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumDecomLiveNodes", "Number of decommissioned Live data nodes"})
|
||||||
public int getNumDecomLiveNodes() {
|
public int getNumDecomLiveNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfDecomActiveDatanodes);
|
MembershipStats::getNumOfDecomActiveDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumDecomDeadNodes", "Number of decommissioned dead data nodes"})
|
||||||
public int getNumDecomDeadNodes() {
|
public int getNumDecomDeadNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfDecomDeadDatanodes);
|
MembershipStats::getNumOfDecomDeadDatanodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumInMaintenanceLiveDataNodes",
|
||||||
|
"Number of IN_MAINTENANCE live data nodes"})
|
||||||
public int getNumInMaintenanceLiveDataNodes() {
|
public int getNumInMaintenanceLiveDataNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfInMaintenanceLiveDataNodes);
|
MembershipStats::getNumOfInMaintenanceLiveDataNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumInMaintenanceDeadDataNodes",
|
||||||
|
"Number of IN_MAINTENANCE dead data nodes"})
|
||||||
public int getNumInMaintenanceDeadDataNodes() {
|
public int getNumInMaintenanceDeadDataNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfInMaintenanceDeadDataNodes);
|
MembershipStats::getNumOfInMaintenanceDeadDataNodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumEnteringMaintenanceDataNodes",
|
||||||
|
"Number of ENTERING_MAINTENANCE data nodes"})
|
||||||
public int getNumEnteringMaintenanceDataNodes() {
|
public int getNumEnteringMaintenanceDataNodes() {
|
||||||
return getNameserviceAggregatedInt(
|
return getNameserviceAggregatedInt(
|
||||||
MembershipStats::getNumOfEnteringMaintenanceDataNodes);
|
MembershipStats::getNumOfEnteringMaintenanceDataNodes);
|
||||||
@ -557,34 +582,41 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumBlocks", "Total number of blocks"})
|
||||||
public long getNumBlocks() {
|
public long getNumBlocks() {
|
||||||
return getNameserviceAggregatedLong(MembershipStats::getNumOfBlocks);
|
return getNameserviceAggregatedLong(MembershipStats::getNumOfBlocks);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumOfMissingBlocks", "Number of missing blocks"})
|
||||||
public long getNumOfMissingBlocks() {
|
public long getNumOfMissingBlocks() {
|
||||||
return getNameserviceAggregatedLong(MembershipStats::getNumOfBlocksMissing);
|
return getNameserviceAggregatedLong(MembershipStats::getNumOfBlocksMissing);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumOfBlocksPendingReplication",
|
||||||
|
"Number of blocks pending replication"})
|
||||||
public long getNumOfBlocksPendingReplication() {
|
public long getNumOfBlocksPendingReplication() {
|
||||||
return getNameserviceAggregatedLong(
|
return getNameserviceAggregatedLong(
|
||||||
MembershipStats::getNumOfBlocksPendingReplication);
|
MembershipStats::getNumOfBlocksPendingReplication);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumOfBlocksUnderReplicated", "Number of blocks under replication"})
|
||||||
public long getNumOfBlocksUnderReplicated() {
|
public long getNumOfBlocksUnderReplicated() {
|
||||||
return getNameserviceAggregatedLong(
|
return getNameserviceAggregatedLong(
|
||||||
MembershipStats::getNumOfBlocksUnderReplicated);
|
MembershipStats::getNumOfBlocksUnderReplicated);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumOfBlocksPendingDeletion", "Number of blocks pending deletion"})
|
||||||
public long getNumOfBlocksPendingDeletion() {
|
public long getNumOfBlocksPendingDeletion() {
|
||||||
return getNameserviceAggregatedLong(
|
return getNameserviceAggregatedLong(
|
||||||
MembershipStats::getNumOfBlocksPendingDeletion);
|
MembershipStats::getNumOfBlocksPendingDeletion);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"NumFiles", "Number of files"})
|
||||||
public long getNumFiles() {
|
public long getNumFiles() {
|
||||||
return getNameserviceAggregatedLong(MembershipStats::getNumOfFiles);
|
return getNameserviceAggregatedLong(MembershipStats::getNumOfFiles);
|
||||||
}
|
}
|
||||||
@ -659,6 +691,7 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"CurrentTokensCount", "Number of router's current tokens"})
|
||||||
public long getCurrentTokensCount() {
|
public long getCurrentTokensCount() {
|
||||||
RouterSecurityManager mgr =
|
RouterSecurityManager mgr =
|
||||||
this.router.getRpcServer().getRouterSecurityManager();
|
this.router.getRpcServer().getRouterSecurityManager();
|
||||||
@ -714,11 +747,13 @@ public class RBFMetrics implements RouterMBean, FederationMBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"RouterFederationRenameCount", "Number of federation rename"})
|
||||||
public int getRouterFederationRenameCount() {
|
public int getRouterFederationRenameCount() {
|
||||||
return this.router.getRpcServer().getRouterFederationRenameCount();
|
return this.router.getRpcServer().getRouterFederationRenameCount();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Metric({"SchedulerJobCount", "Number of scheduler job"})
|
||||||
public int getSchedulerJobCount() {
|
public int getSchedulerJobCount() {
|
||||||
return this.router.getRpcServer().getSchedulerJobCount();
|
return this.router.getRpcServer().getSchedulerJobCount();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user