HBASE-21414 : StoreFileSize growth rate metric
Signed-off-by: Sergey Shelukhin <sershe@apache.org>
This commit is contained in:
parent
12e75a8a63
commit
170df27b88
|
@ -234,6 +234,7 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
|
||||||
String MEMSTORE_SIZE = "memStoreSize";
|
String MEMSTORE_SIZE = "memStoreSize";
|
||||||
String MEMSTORE_SIZE_DESC = "Size of the memstore";
|
String MEMSTORE_SIZE_DESC = "Size of the memstore";
|
||||||
String STOREFILE_SIZE = "storeFileSize";
|
String STOREFILE_SIZE = "storeFileSize";
|
||||||
|
String STOREFILE_SIZE_GROWTH_RATE = "storeFileSizeGrowthRate";
|
||||||
String MAX_STORE_FILE_AGE = "maxStoreFileAge";
|
String MAX_STORE_FILE_AGE = "maxStoreFileAge";
|
||||||
String MIN_STORE_FILE_AGE = "minStoreFileAge";
|
String MIN_STORE_FILE_AGE = "minStoreFileAge";
|
||||||
String AVG_STORE_FILE_AGE = "avgStoreFileAge";
|
String AVG_STORE_FILE_AGE = "avgStoreFileAge";
|
||||||
|
@ -243,6 +244,8 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
|
||||||
String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this RegionServer";
|
String AVG_STORE_FILE_AGE_DESC = "Average age of store files hosted on this RegionServer";
|
||||||
String NUM_REFERENCE_FILES_DESC = "Number of reference file on this RegionServer";
|
String NUM_REFERENCE_FILES_DESC = "Number of reference file on this RegionServer";
|
||||||
String STOREFILE_SIZE_DESC = "Size of storefiles being served.";
|
String STOREFILE_SIZE_DESC = "Size of storefiles being served.";
|
||||||
|
String STOREFILE_SIZE_GROWTH_RATE_DESC =
|
||||||
|
"Bytes per second by which the size of storefiles being served grows.";
|
||||||
String TOTAL_REQUEST_COUNT = "totalRequestCount";
|
String TOTAL_REQUEST_COUNT = "totalRequestCount";
|
||||||
String TOTAL_REQUEST_COUNT_DESC =
|
String TOTAL_REQUEST_COUNT_DESC =
|
||||||
"Total number of requests this RegionServer has answered; increments the count once for " +
|
"Total number of requests this RegionServer has answered; increments the count once for " +
|
||||||
|
|
|
@ -100,6 +100,11 @@ public interface MetricsRegionServerWrapper {
|
||||||
*/
|
*/
|
||||||
long getStoreFileSize();
|
long getStoreFileSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the growth rate of the store files this region server is serving from.
|
||||||
|
*/
|
||||||
|
double getStoreFileSizeGrowthRate();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Max age of store files hosted on this region server
|
* @return Max age of store files hosted on this region server
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -482,6 +482,8 @@ public class MetricsRegionServerSourceImpl
|
||||||
rsWrap.getNumStoreFiles())
|
rsWrap.getNumStoreFiles())
|
||||||
.addGauge(Interns.info(MEMSTORE_SIZE, MEMSTORE_SIZE_DESC), rsWrap.getMemStoreSize())
|
.addGauge(Interns.info(MEMSTORE_SIZE, MEMSTORE_SIZE_DESC), rsWrap.getMemStoreSize())
|
||||||
.addGauge(Interns.info(STOREFILE_SIZE, STOREFILE_SIZE_DESC), rsWrap.getStoreFileSize())
|
.addGauge(Interns.info(STOREFILE_SIZE, STOREFILE_SIZE_DESC), rsWrap.getStoreFileSize())
|
||||||
|
.addGauge(Interns.info(STOREFILE_SIZE_GROWTH_RATE, STOREFILE_SIZE_GROWTH_RATE_DESC),
|
||||||
|
rsWrap.getStoreFileSizeGrowthRate())
|
||||||
.addGauge(Interns.info(MAX_STORE_FILE_AGE, MAX_STORE_FILE_AGE_DESC),
|
.addGauge(Interns.info(MAX_STORE_FILE_AGE, MAX_STORE_FILE_AGE_DESC),
|
||||||
rsWrap.getMaxStoreFileAge())
|
rsWrap.getMaxStoreFileAge())
|
||||||
.addGauge(Interns.info(MIN_STORE_FILE_AGE, MIN_STORE_FILE_AGE_DESC),
|
.addGauge(Interns.info(MIN_STORE_FILE_AGE, MIN_STORE_FILE_AGE_DESC),
|
||||||
|
|
|
@ -68,6 +68,7 @@ class MetricsRegionServerWrapperImpl
|
||||||
private volatile long numStoreFiles = 0;
|
private volatile long numStoreFiles = 0;
|
||||||
private volatile long memstoreSize = 0;
|
private volatile long memstoreSize = 0;
|
||||||
private volatile long storeFileSize = 0;
|
private volatile long storeFileSize = 0;
|
||||||
|
private volatile double storeFileSizeGrowthRate = 0;
|
||||||
private volatile long maxStoreFileAge = 0;
|
private volatile long maxStoreFileAge = 0;
|
||||||
private volatile long minStoreFileAge = 0;
|
private volatile long minStoreFileAge = 0;
|
||||||
private volatile long avgStoreFileAge = 0;
|
private volatile long avgStoreFileAge = 0;
|
||||||
|
@ -512,6 +513,11 @@ class MetricsRegionServerWrapperImpl
|
||||||
return storeFileSize;
|
return storeFileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getStoreFileSizeGrowthRate() {
|
||||||
|
return storeFileSizeGrowthRate;
|
||||||
|
}
|
||||||
|
|
||||||
@Override public double getRequestsPerSecond() {
|
@Override public double getRequestsPerSecond() {
|
||||||
return requestsPerSecond;
|
return requestsPerSecond;
|
||||||
}
|
}
|
||||||
|
@ -730,6 +736,7 @@ class MetricsRegionServerWrapperImpl
|
||||||
private long lastRequestCount = 0;
|
private long lastRequestCount = 0;
|
||||||
private long lastReadRequestsCount = 0;
|
private long lastReadRequestsCount = 0;
|
||||||
private long lastWriteRequestsCount = 0;
|
private long lastWriteRequestsCount = 0;
|
||||||
|
private long lastStoreFileSize = 0;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
synchronized public void run() {
|
synchronized public void run() {
|
||||||
|
@ -870,18 +877,20 @@ class MetricsRegionServerWrapperImpl
|
||||||
long intervalReadRequestsCount = tempReadRequestsCount - lastReadRequestsCount;
|
long intervalReadRequestsCount = tempReadRequestsCount - lastReadRequestsCount;
|
||||||
long intervalWriteRequestsCount = tempWriteRequestsCount - lastWriteRequestsCount;
|
long intervalWriteRequestsCount = tempWriteRequestsCount - lastWriteRequestsCount;
|
||||||
|
|
||||||
double readRequestsRatePerMilliSecond = ((double)intervalReadRequestsCount/
|
double readRequestsRatePerMilliSecond = (double)intervalReadRequestsCount / period;
|
||||||
(double)period);
|
double writeRequestsRatePerMilliSecond = (double)intervalWriteRequestsCount / period;
|
||||||
double writeRequestsRatePerMilliSecond = ((double)intervalWriteRequestsCount/
|
|
||||||
(double)period);
|
|
||||||
|
|
||||||
readRequestsRatePerSecond = readRequestsRatePerMilliSecond * 1000.0;
|
readRequestsRatePerSecond = readRequestsRatePerMilliSecond * 1000.0;
|
||||||
writeRequestsRatePerSecond = writeRequestsRatePerMilliSecond * 1000.0;
|
writeRequestsRatePerSecond = writeRequestsRatePerMilliSecond * 1000.0;
|
||||||
|
|
||||||
|
long intervalStoreFileSize = tempStoreFileSize - lastStoreFileSize;
|
||||||
|
storeFileSizeGrowthRate = (double)intervalStoreFileSize * 1000.0 / period;
|
||||||
|
|
||||||
lastReadRequestsCount = tempReadRequestsCount;
|
lastReadRequestsCount = tempReadRequestsCount;
|
||||||
lastWriteRequestsCount = tempWriteRequestsCount;
|
lastWriteRequestsCount = tempWriteRequestsCount;
|
||||||
|
lastStoreFileSize = tempStoreFileSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
lastRan = currentTime;
|
lastRan = currentTime;
|
||||||
|
|
||||||
WALProvider provider = regionServer.walFactory.getWALProvider();
|
WALProvider provider = regionServer.walFactory.getWALProvider();
|
||||||
|
|
|
@ -70,6 +70,11 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
|
||||||
return 1900;
|
return 1900;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getStoreFileSizeGrowthRate() {
|
||||||
|
return 50.0;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMaxStoreFileAge() {
|
public long getMaxStoreFileAge() {
|
||||||
return 2;
|
return 2;
|
||||||
|
@ -222,7 +227,7 @@ public class MetricsRegionServerWrapperStub implements MetricsRegionServerWrappe
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public long getMemStoreLimit() {
|
public long getMemStoreLimit() {
|
||||||
return 419;
|
return 419;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -78,6 +78,7 @@ public class TestMetricsRegionServer {
|
||||||
HELPER.assertGauge("storeFileCount", 300, serverSource);
|
HELPER.assertGauge("storeFileCount", 300, serverSource);
|
||||||
HELPER.assertGauge("memstoreSize", 1025, serverSource);
|
HELPER.assertGauge("memstoreSize", 1025, serverSource);
|
||||||
HELPER.assertGauge("storeFileSize", 1900, serverSource);
|
HELPER.assertGauge("storeFileSize", 1900, serverSource);
|
||||||
|
HELPER.assertGauge("storeFileSizeGrowthRate", 50.0, serverSource);
|
||||||
HELPER.assertCounter("totalRequestCount", 899, serverSource);
|
HELPER.assertCounter("totalRequestCount", 899, serverSource);
|
||||||
HELPER.assertCounter("totalRowActionRequestCount",
|
HELPER.assertCounter("totalRowActionRequestCount",
|
||||||
HELPER.getCounter("readRequestCount", serverSource)
|
HELPER.getCounter("readRequestCount", serverSource)
|
||||||
|
|
Loading…
Reference in New Issue