HBASE-24994 Add hedgedReadOpsInCurThread metric (#2367)
Signed-off-by: Duo Zhang <zhangduo@apache.org>
This commit is contained in:
parent
2a63d467f4
commit
cd66d8cba5
|
@ -480,6 +480,9 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
|
|||
String HEDGED_READ_WINS = "hedgedReadWins";
|
||||
String HEDGED_READ_WINS_DESC =
|
||||
"The number of times we started a hedged read and a hedged read won";
|
||||
String HEDGED_READ_IN_CUR_THREAD = "hedgedReadOpsInCurThread";
|
||||
String HEDGED_READ_IN_CUR_THREAD_DESC =
|
||||
"The number of times we execute a hedged read in current thread as a fallback for task rejection";
|
||||
|
||||
String TOTAL_BYTES_READ = "totalBytesRead";
|
||||
String TOTAL_BYTES_READ_DESC = "The total number of bytes read from HDFS";
|
||||
|
|
|
@ -442,6 +442,11 @@ public interface MetricsRegionServerWrapper {
|
|||
*/
|
||||
long getHedgedReadWins();
|
||||
|
||||
/**
|
||||
* @return Count of times a hedged read executes in current thread
|
||||
*/
|
||||
long getHedgedReadOpsInCurThread();
|
||||
|
||||
/**
|
||||
* @return Number of total bytes read from HDFS.
|
||||
*/
|
||||
|
|
|
@ -456,6 +456,8 @@ public class MetricsRegionServerSourceImpl
|
|||
.addCounter(Interns.info(HEDGED_READS, HEDGED_READS_DESC), rsWrap.getHedgedReadOps())
|
||||
.addCounter(Interns.info(HEDGED_READ_WINS, HEDGED_READ_WINS_DESC),
|
||||
rsWrap.getHedgedReadWins())
|
||||
.addCounter(Interns.info(HEDGED_READ_IN_CUR_THREAD, HEDGED_READ_IN_CUR_THREAD_DESC),
|
||||
rsWrap.getHedgedReadOpsInCurThread())
|
||||
.addCounter(Interns.info(BLOCKED_REQUESTS_COUNT, BLOCKED_REQUESTS_COUNT_DESC),
|
||||
rsWrap.getBlockedRequestsCount())
|
||||
.tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
|
||||
|
|
|
@ -906,6 +906,11 @@ class MetricsRegionServerWrapperImpl
|
|||
return this.dfsHedgedReadMetrics == null? 0: this.dfsHedgedReadMetrics.getHedgedReadWins();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getHedgedReadOpsInCurThread() {
|
||||
return this.dfsHedgedReadMetrics == null ? 0 : this.dfsHedgedReadMetrics.getHedgedReadOpsInCurThread();
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTotalBytesRead() {
|
||||
return FSDataInputStreamWrapper.getTotalBytesRead();
|
||||
|
|
|
@ -410,6 +410,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
|
|||
return 10;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getHedgedReadOpsInCurThread() {
|
||||
return 5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getTotalBytesRead() {
|
||||
return 0;
|
||||
|
|
|
@ -801,6 +801,8 @@ See <<hbase_metrics>> for more information.
|
|||
This could indicate that read requests are often slow, or that hedged reads are triggered too quickly.
|
||||
* hedgeReadOpsWin - the number of times the hedged read thread was faster than the original thread.
|
||||
This could indicate that a given RegionServer is having trouble servicing requests.
|
||||
* hedgedReadOpsInCurThread - the number of times hedged read was rejected from executor and needed to fallback to be executed in current thread.
|
||||
This could indicate that current hedged read thread pool size is not appropriate.
|
||||
|
||||
|
||||
[[perf.deleting]]
|
||||
|
|
Loading…
Reference in New Issue