HDFS-13854. RBF: The ProcessingAvgTime and ProxyAvgTime should display by JMX with ms unit. Contributed by yanghuafeng.
This commit is contained in:
parent
2651e2c43d
commit
64ad0298d4
@ -85,15 +85,6 @@ public static FederationRPCMetrics create(Configuration conf,
|
||||
new FederationRPCMetrics(conf, rpcServer));
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert nanoseconds to milliseconds.
|
||||
* @param ns Time in nanoseconds.
|
||||
* @return Time in milliseconds.
|
||||
*/
|
||||
private static double toMs(double ns) {
|
||||
return ns / 1000000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset the metrics system.
|
||||
*/
|
||||
@ -230,7 +221,7 @@ public void addProxyTime(long time) {
|
||||
|
||||
@Override
|
||||
public double getProxyAvg() {
|
||||
return toMs(proxy.lastStat().mean());
|
||||
return proxy.lastStat().mean();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -250,7 +241,7 @@ public void addProcessingTime(long time) {
|
||||
|
||||
@Override
|
||||
public double getProcessingAvg() {
|
||||
return toMs(processing.lastStat().mean());
|
||||
return processing.lastStat().mean();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,6 +35,8 @@
|
||||
|
||||
import com.google.common.util.concurrent.ThreadFactoryBuilder;
|
||||
|
||||
import static org.apache.hadoop.util.Time.monotonicNow;
|
||||
|
||||
/**
|
||||
* Customizable RPC performance monitor. Receives events from the RPC server
|
||||
* and aggregates them via JMX.
|
||||
@ -120,12 +122,12 @@ public void resetPerfCounters() {
|
||||
|
||||
@Override
|
||||
public void startOp() {
|
||||
START_TIME.set(this.getNow());
|
||||
START_TIME.set(monotonicNow());
|
||||
}
|
||||
|
||||
@Override
|
||||
public long proxyOp() {
|
||||
PROXY_TIME.set(this.getNow());
|
||||
PROXY_TIME.set(monotonicNow());
|
||||
long processingTime = getProcessingTime();
|
||||
if (processingTime >= 0) {
|
||||
metrics.addProcessingTime(processingTime);
|
||||
@ -188,13 +190,6 @@ public void routerFailureLocked() {
|
||||
metrics.incrRouterFailureLocked();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current time.
|
||||
* @return Current time in nanoseconds.
|
||||
*/
|
||||
private long getNow() {
|
||||
return System.nanoTime();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get time between we receiving the operation and sending it to the Namenode.
|
||||
@ -214,7 +209,7 @@ private long getProcessingTime() {
|
||||
*/
|
||||
private long getProxyTime() {
|
||||
if (PROXY_TIME.get() != null && PROXY_TIME.get() > 0) {
|
||||
return getNow() - PROXY_TIME.get();
|
||||
return monotonicNow() - PROXY_TIME.get();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user