You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by en...@apache.org on 2016/04/21 22:36:58 UTC
[1/3] hbase git commit: HBASE-15671 Add per-table metrics on memstore,
storefile and regionsize (Alicia Ying Shu)
Repository: hbase
Updated Branches:
refs/heads/branch-1 0b65f2002 -> 550d253ea
refs/heads/branch-1.3 5c5aac643 -> 01165ffa8
refs/heads/master 9ba9cdeb4 -> 4c0587134
HBASE-15671 Add per-table metrics on memstore, storefile and regionsize (Alicia Ying Shu)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/4c058713
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/4c058713
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/4c058713
Branch: refs/heads/master
Commit: 4c0587134a5334c5da401476dc510c746a301f1e
Parents: 9ba9cde
Author: Enis Soztutar <en...@apache.org>
Authored: Thu Apr 21 13:33:26 2016 -0700
Committer: Enis Soztutar <en...@apache.org>
Committed: Thu Apr 21 13:33:26 2016 -0700
----------------------------------------------------------------------
.../hbase/regionserver/MetricsTableSource.java | 6 ++
.../MetricsTableWrapperAggregate.java | 15 +++++
.../regionserver/MetricsTableSourceImpl.java | 9 +++
.../TestMetricsTableSourceImpl.java | 15 +++++
.../MetricsTableWrapperAggregateImpl.java | 62 +++++++++++++++++++-
.../regionserver/MetricsTableWrapperStub.java | 15 +++++
.../regionserver/TestMetricsTableAggregate.java | 12 ++--
7 files changed, 129 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
index 6daccfb..7d1f5d0 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
@@ -30,6 +30,12 @@ public interface MetricsTableSource extends Comparable<MetricsTableSource> {
String WRITE_REQUEST_COUNT_DESC = "Number fo write requests";
String TOTAL_REQUEST_COUNT = "totalRequestCount";
String TOTAL_REQUEST_COUNT_DESC = "Number fo total requests";
+ String MEMSTORE_SIZE = "memstoreSize";
+ String MEMSTORE_SIZE_DESC = "The size of memory stores";
+ String STORE_FILE_SIZE = "storeFileSize";
+ String STORE_FILE_SIZE_DESC = "The size of store files size";
+ String TABLE_SIZE = "tableSize";
+ String TABLE_SIZE_DESC = "Total size of the table in the region server";
String getTableName();
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
index e87eb7e..85ea4f6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
@@ -39,4 +39,19 @@ public interface MetricsTableWrapperAggregate {
* Get the total number of requests that have been issued against this table
*/
long getTotalRequestsCount(String table);
+
+ /**
+ * Get the memory store size against this table
+ */
+ long getMemstoresSize(String table);
+
+ /**
+ * Get the store file size against this table
+ */
+ long getStoreFilesSize(String table);
+
+ /**
+ * Get the table region size against this table
+ */
+ long getTableSize(String table);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
index 1e3734c..33a807f 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
@@ -131,6 +131,15 @@ public class MetricsTableSourceImpl implements MetricsTableSource {
mrb.addCounter(Interns.info(tableNamePrefix + MetricsTableSource.TOTAL_REQUEST_COUNT,
MetricsTableSource.TOTAL_REQUEST_COUNT_DESC),
tableWrapperAgg.getTotalRequestsCount(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.MEMSTORE_SIZE,
+ MetricsTableSource.MEMSTORE_SIZE_DESC),
+ tableWrapperAgg.getMemstoresSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.STORE_FILE_SIZE,
+ MetricsTableSource.STORE_FILE_SIZE_DESC),
+ tableWrapperAgg.getStoreFilesSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.TABLE_SIZE,
+ MetricsTableSource.TABLE_SIZE_DESC),
+ tableWrapperAgg.getTableSize(tableName.getNameAsString()));
}
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
index 5423ddb..2717817 100644
--- a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
@@ -91,6 +91,21 @@ public class TestMetricsTableSourceImpl {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
index 3e6552c..c5f0f7b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
@@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.regionserver;
import java.io.Closeable;
import java.io.IOException;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -69,6 +68,13 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
metricsTable = new MetricsTableValues();
localMetricsTableMap.put(tbl, metricsTable);
}
+ long tempStorefilesSize = 0;
+ for (Store store : r.getStores()) {
+ tempStorefilesSize += store.getStorefilesSize();
+ }
+ metricsTable.setMemstoresSize(metricsTable.getMemstoresSize() + r.getMemstoreSize());
+ metricsTable.setStoreFilesSize(metricsTable.getStoreFilesSize() + tempStorefilesSize);
+ metricsTable.setTableSize(metricsTable.getMemstoresSize() + metricsTable.getStoreFilesSize());
metricsTable.setReadRequestsCount(metricsTable.getReadRequestsCount() + r.getReadRequestsCount());
metricsTable.setWriteRequestsCount(metricsTable.getWriteRequestsCount() + r.getWriteRequestsCount());
metricsTable.setTotalRequestsCount(metricsTable.getReadRequestsCount() + metricsTable.getWriteRequestsCount());
@@ -127,6 +133,33 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
}
@Override
+ public long getMemstoresSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getMemstoresSize();
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getStoreFilesSize();
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getTableSize();
+ }
+
+ @Override
public void close() throws IOException {
tableMetricsUpdateTask.cancel(true);
}
@@ -136,6 +169,9 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
private long totalRequestsCount;
private long readRequestsCount;
private long writeRequestsCount;
+ private long memstoresSize;
+ private long storeFilesSize;
+ private long tableSize;
public long getTotalRequestsCount() {
return totalRequestsCount;
@@ -160,6 +196,30 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
public void setWriteRequestsCount(long writeRequestsCount) {
this.writeRequestsCount = writeRequestsCount;
}
+
+ public long getMemstoresSize() {
+ return memstoresSize;
+ }
+
+ public void setMemstoresSize(long memstoresSize) {
+ this.memstoresSize = memstoresSize;
+ }
+
+ public long getStoreFilesSize() {
+ return storeFilesSize;
+ }
+
+ public void setStoreFilesSize(long storeFilesSize) {
+ this.storeFilesSize = storeFilesSize;
+ }
+
+ public long getTableSize() {
+ return tableSize;
+ }
+
+ public void setTableSize(long tableSize) {
+ this.tableSize = tableSize;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
index 9c7d982..6fd8dd7 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
@@ -41,6 +41,21 @@ public class MetricsTableWrapperStub implements MetricsTableWrapperAggregate {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/4c058713/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
index afde53f..c114298 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
@@ -34,15 +34,19 @@ public class TestMetricsTableAggregate {
@Test
public void testTableWrapperAggregateMetrics() throws IOException {
- String tableName = "testRequestCount";
+ String tableName = "testTableMetrics";
MetricsTableWrapperStub tableWrapper = new MetricsTableWrapperStub(tableName);
CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
.createTable(tableName, tableWrapper);
MetricsTableAggregateSource agg = CompatibilitySingletonFactory
.getInstance(MetricsRegionServerSourceFactory.class).getTableAggregate();
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_readRequestCount", 10, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_writeRequestCount", 20, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_totalRequestCount", 30, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_readRequestCount", 10, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_writeRequestCount", 20, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_totalRequestCount", 30, agg);
+
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_memstoreSize", 1000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_storeFileSize", 2000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_tableSize", 3000, agg);
}
}
\ No newline at end of file
[2/3] hbase git commit: HBASE-15671 Add per-table metrics on memstore,
storefile and regionsize (Alicia Ying Shu)
Posted by en...@apache.org.
HBASE-15671 Add per-table metrics on memstore, storefile and regionsize (Alicia Ying Shu)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/550d253e
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/550d253e
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/550d253e
Branch: refs/heads/branch-1
Commit: 550d253ead76aaa367fdd88fe48a9ac9bad96fb4
Parents: 0b65f20
Author: Enis Soztutar <en...@apache.org>
Authored: Thu Apr 21 13:33:26 2016 -0700
Committer: Enis Soztutar <en...@apache.org>
Committed: Thu Apr 21 13:33:31 2016 -0700
----------------------------------------------------------------------
.../hbase/regionserver/MetricsTableSource.java | 6 ++
.../MetricsTableWrapperAggregate.java | 15 +++++
.../regionserver/MetricsTableSourceImpl.java | 9 +++
.../TestMetricsTableSourceImpl.java | 15 +++++
.../MetricsTableWrapperAggregateImpl.java | 62 +++++++++++++++++++-
.../regionserver/MetricsTableWrapperStub.java | 15 +++++
.../regionserver/TestMetricsTableAggregate.java | 12 ++--
7 files changed, 129 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
index 6daccfb..7d1f5d0 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
@@ -30,6 +30,12 @@ public interface MetricsTableSource extends Comparable<MetricsTableSource> {
String WRITE_REQUEST_COUNT_DESC = "Number fo write requests";
String TOTAL_REQUEST_COUNT = "totalRequestCount";
String TOTAL_REQUEST_COUNT_DESC = "Number fo total requests";
+ String MEMSTORE_SIZE = "memstoreSize";
+ String MEMSTORE_SIZE_DESC = "The size of memory stores";
+ String STORE_FILE_SIZE = "storeFileSize";
+ String STORE_FILE_SIZE_DESC = "The size of store files size";
+ String TABLE_SIZE = "tableSize";
+ String TABLE_SIZE_DESC = "Total size of the table in the region server";
String getTableName();
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
index e87eb7e..85ea4f6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
@@ -39,4 +39,19 @@ public interface MetricsTableWrapperAggregate {
* Get the total number of requests that have been issued against this table
*/
long getTotalRequestsCount(String table);
+
+ /**
+ * Get the memory store size against this table
+ */
+ long getMemstoresSize(String table);
+
+ /**
+ * Get the store file size against this table
+ */
+ long getStoreFilesSize(String table);
+
+ /**
+ * Get the table region size against this table
+ */
+ long getTableSize(String table);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
index 1e3734c..33a807f 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
@@ -131,6 +131,15 @@ public class MetricsTableSourceImpl implements MetricsTableSource {
mrb.addCounter(Interns.info(tableNamePrefix + MetricsTableSource.TOTAL_REQUEST_COUNT,
MetricsTableSource.TOTAL_REQUEST_COUNT_DESC),
tableWrapperAgg.getTotalRequestsCount(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.MEMSTORE_SIZE,
+ MetricsTableSource.MEMSTORE_SIZE_DESC),
+ tableWrapperAgg.getMemstoresSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.STORE_FILE_SIZE,
+ MetricsTableSource.STORE_FILE_SIZE_DESC),
+ tableWrapperAgg.getStoreFilesSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.TABLE_SIZE,
+ MetricsTableSource.TABLE_SIZE_DESC),
+ tableWrapperAgg.getTableSize(tableName.getNameAsString()));
}
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
index 5423ddb..2717817 100644
--- a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
@@ -91,6 +91,21 @@ public class TestMetricsTableSourceImpl {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
index 3e6552c..c5f0f7b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
@@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.regionserver;
import java.io.Closeable;
import java.io.IOException;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -69,6 +68,13 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
metricsTable = new MetricsTableValues();
localMetricsTableMap.put(tbl, metricsTable);
}
+ long tempStorefilesSize = 0;
+ for (Store store : r.getStores()) {
+ tempStorefilesSize += store.getStorefilesSize();
+ }
+ metricsTable.setMemstoresSize(metricsTable.getMemstoresSize() + r.getMemstoreSize());
+ metricsTable.setStoreFilesSize(metricsTable.getStoreFilesSize() + tempStorefilesSize);
+ metricsTable.setTableSize(metricsTable.getMemstoresSize() + metricsTable.getStoreFilesSize());
metricsTable.setReadRequestsCount(metricsTable.getReadRequestsCount() + r.getReadRequestsCount());
metricsTable.setWriteRequestsCount(metricsTable.getWriteRequestsCount() + r.getWriteRequestsCount());
metricsTable.setTotalRequestsCount(metricsTable.getReadRequestsCount() + metricsTable.getWriteRequestsCount());
@@ -127,6 +133,33 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
}
@Override
+ public long getMemstoresSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getMemstoresSize();
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getStoreFilesSize();
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getTableSize();
+ }
+
+ @Override
public void close() throws IOException {
tableMetricsUpdateTask.cancel(true);
}
@@ -136,6 +169,9 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
private long totalRequestsCount;
private long readRequestsCount;
private long writeRequestsCount;
+ private long memstoresSize;
+ private long storeFilesSize;
+ private long tableSize;
public long getTotalRequestsCount() {
return totalRequestsCount;
@@ -160,6 +196,30 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
public void setWriteRequestsCount(long writeRequestsCount) {
this.writeRequestsCount = writeRequestsCount;
}
+
+ public long getMemstoresSize() {
+ return memstoresSize;
+ }
+
+ public void setMemstoresSize(long memstoresSize) {
+ this.memstoresSize = memstoresSize;
+ }
+
+ public long getStoreFilesSize() {
+ return storeFilesSize;
+ }
+
+ public void setStoreFilesSize(long storeFilesSize) {
+ this.storeFilesSize = storeFilesSize;
+ }
+
+ public long getTableSize() {
+ return tableSize;
+ }
+
+ public void setTableSize(long tableSize) {
+ this.tableSize = tableSize;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
index 9c7d982..6fd8dd7 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
@@ -41,6 +41,21 @@ public class MetricsTableWrapperStub implements MetricsTableWrapperAggregate {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/550d253e/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
index afde53f..c114298 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
@@ -34,15 +34,19 @@ public class TestMetricsTableAggregate {
@Test
public void testTableWrapperAggregateMetrics() throws IOException {
- String tableName = "testRequestCount";
+ String tableName = "testTableMetrics";
MetricsTableWrapperStub tableWrapper = new MetricsTableWrapperStub(tableName);
CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
.createTable(tableName, tableWrapper);
MetricsTableAggregateSource agg = CompatibilitySingletonFactory
.getInstance(MetricsRegionServerSourceFactory.class).getTableAggregate();
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_readRequestCount", 10, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_writeRequestCount", 20, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_totalRequestCount", 30, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_readRequestCount", 10, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_writeRequestCount", 20, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_totalRequestCount", 30, agg);
+
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_memstoreSize", 1000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_storeFileSize", 2000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_tableSize", 3000, agg);
}
}
\ No newline at end of file
[3/3] hbase git commit: HBASE-15671 Add per-table metrics on memstore,
storefile and regionsize (Alicia Ying Shu)
Posted by en...@apache.org.
HBASE-15671 Add per-table metrics on memstore, storefile and regionsize (Alicia Ying Shu)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/01165ffa
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/01165ffa
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/01165ffa
Branch: refs/heads/branch-1.3
Commit: 01165ffa8a0425598d42b28075c60745fe887100
Parents: 5c5aac6
Author: Enis Soztutar <en...@apache.org>
Authored: Thu Apr 21 13:33:26 2016 -0700
Committer: Enis Soztutar <en...@apache.org>
Committed: Thu Apr 21 13:34:52 2016 -0700
----------------------------------------------------------------------
.../hbase/regionserver/MetricsTableSource.java | 6 ++
.../MetricsTableWrapperAggregate.java | 15 +++++
.../regionserver/MetricsTableSourceImpl.java | 9 +++
.../TestMetricsTableSourceImpl.java | 15 +++++
.../MetricsTableWrapperAggregateImpl.java | 62 +++++++++++++++++++-
.../regionserver/MetricsTableWrapperStub.java | 15 +++++
.../regionserver/TestMetricsTableAggregate.java | 12 ++--
7 files changed, 129 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
index 6daccfb..7d1f5d0 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSource.java
@@ -30,6 +30,12 @@ public interface MetricsTableSource extends Comparable<MetricsTableSource> {
String WRITE_REQUEST_COUNT_DESC = "Number fo write requests";
String TOTAL_REQUEST_COUNT = "totalRequestCount";
String TOTAL_REQUEST_COUNT_DESC = "Number fo total requests";
+ String MEMSTORE_SIZE = "memstoreSize";
+ String MEMSTORE_SIZE_DESC = "The size of memory stores";
+ String STORE_FILE_SIZE = "storeFileSize";
+ String STORE_FILE_SIZE_DESC = "The size of store files size";
+ String TABLE_SIZE = "tableSize";
+ String TABLE_SIZE_DESC = "Total size of the table in the region server";
String getTableName();
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
index e87eb7e..85ea4f6 100644
--- a/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
+++ b/hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.java
@@ -39,4 +39,19 @@ public interface MetricsTableWrapperAggregate {
* Get the total number of requests that have been issued against this table
*/
long getTotalRequestsCount(String table);
+
+ /**
+ * Get the memory store size against this table
+ */
+ long getMemstoresSize(String table);
+
+ /**
+ * Get the store file size against this table
+ */
+ long getStoreFilesSize(String table);
+
+ /**
+ * Get the table region size against this table
+ */
+ long getTableSize(String table);
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
index 1e3734c..33a807f 100644
--- a/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java
@@ -131,6 +131,15 @@ public class MetricsTableSourceImpl implements MetricsTableSource {
mrb.addCounter(Interns.info(tableNamePrefix + MetricsTableSource.TOTAL_REQUEST_COUNT,
MetricsTableSource.TOTAL_REQUEST_COUNT_DESC),
tableWrapperAgg.getTotalRequestsCount(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.MEMSTORE_SIZE,
+ MetricsTableSource.MEMSTORE_SIZE_DESC),
+ tableWrapperAgg.getMemstoresSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.STORE_FILE_SIZE,
+ MetricsTableSource.STORE_FILE_SIZE_DESC),
+ tableWrapperAgg.getStoreFilesSize(tableName.getNameAsString()));
+ mrb.addGauge(Interns.info(tableNamePrefix + MetricsTableSource.TABLE_SIZE,
+ MetricsTableSource.TABLE_SIZE_DESC),
+ tableWrapperAgg.getTableSize(tableName.getNameAsString()));
}
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
----------------------------------------------------------------------
diff --git a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
index 5423ddb..2717817 100644
--- a/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
+++ b/hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java
@@ -91,6 +91,21 @@ public class TestMetricsTableSourceImpl {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
index 3e6552c..c5f0f7b 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java
@@ -21,7 +21,6 @@ package org.apache.hadoop.hbase.regionserver;
import java.io.Closeable;
import java.io.IOException;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
@@ -69,6 +68,13 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
metricsTable = new MetricsTableValues();
localMetricsTableMap.put(tbl, metricsTable);
}
+ long tempStorefilesSize = 0;
+ for (Store store : r.getStores()) {
+ tempStorefilesSize += store.getStorefilesSize();
+ }
+ metricsTable.setMemstoresSize(metricsTable.getMemstoresSize() + r.getMemstoreSize());
+ metricsTable.setStoreFilesSize(metricsTable.getStoreFilesSize() + tempStorefilesSize);
+ metricsTable.setTableSize(metricsTable.getMemstoresSize() + metricsTable.getStoreFilesSize());
metricsTable.setReadRequestsCount(metricsTable.getReadRequestsCount() + r.getReadRequestsCount());
metricsTable.setWriteRequestsCount(metricsTable.getWriteRequestsCount() + r.getWriteRequestsCount());
metricsTable.setTotalRequestsCount(metricsTable.getReadRequestsCount() + metricsTable.getWriteRequestsCount());
@@ -127,6 +133,33 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
}
@Override
+ public long getMemstoresSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getMemstoresSize();
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getStoreFilesSize();
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ MetricsTableValues metricsTable = metricsTableMap.get(TableName.valueOf(table));
+ if (metricsTable == null)
+ return 0;
+ else
+ return metricsTable.getTableSize();
+ }
+
+ @Override
public void close() throws IOException {
tableMetricsUpdateTask.cancel(true);
}
@@ -136,6 +169,9 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
private long totalRequestsCount;
private long readRequestsCount;
private long writeRequestsCount;
+ private long memstoresSize;
+ private long storeFilesSize;
+ private long tableSize;
public long getTotalRequestsCount() {
return totalRequestsCount;
@@ -160,6 +196,30 @@ public class MetricsTableWrapperAggregateImpl implements MetricsTableWrapperAggr
public void setWriteRequestsCount(long writeRequestsCount) {
this.writeRequestsCount = writeRequestsCount;
}
+
+ public long getMemstoresSize() {
+ return memstoresSize;
+ }
+
+ public void setMemstoresSize(long memstoresSize) {
+ this.memstoresSize = memstoresSize;
+ }
+
+ public long getStoreFilesSize() {
+ return storeFilesSize;
+ }
+
+ public void setStoreFilesSize(long storeFilesSize) {
+ this.storeFilesSize = storeFilesSize;
+ }
+
+ public long getTableSize() {
+ return tableSize;
+ }
+
+ public void setTableSize(long tableSize) {
+ this.tableSize = tableSize;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
index 9c7d982..6fd8dd7 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsTableWrapperStub.java
@@ -41,6 +41,21 @@ public class MetricsTableWrapperStub implements MetricsTableWrapperAggregate {
return 30;
}
+ @Override
+ public long getMemstoresSize(String table) {
+ return 1000;
+ }
+
+ @Override
+ public long getStoreFilesSize(String table) {
+ return 2000;
+ }
+
+ @Override
+ public long getTableSize(String table) {
+ return 3000;
+ }
+
public String getTableName() {
return tableName;
}
http://git-wip-us.apache.org/repos/asf/hbase/blob/01165ffa/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
index afde53f..c114298 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java
@@ -34,15 +34,19 @@ public class TestMetricsTableAggregate {
@Test
public void testTableWrapperAggregateMetrics() throws IOException {
- String tableName = "testRequestCount";
+ String tableName = "testTableMetrics";
MetricsTableWrapperStub tableWrapper = new MetricsTableWrapperStub(tableName);
CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)
.createTable(tableName, tableWrapper);
MetricsTableAggregateSource agg = CompatibilitySingletonFactory
.getInstance(MetricsRegionServerSourceFactory.class).getTableAggregate();
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_readRequestCount", 10, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_writeRequestCount", 20, agg);
- HELPER.assertCounter("Namespace_default_table_testRequestCount_metric_totalRequestCount", 30, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_readRequestCount", 10, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_writeRequestCount", 20, agg);
+ HELPER.assertCounter("Namespace_default_table_testTableMetrics_metric_totalRequestCount", 30, agg);
+
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_memstoreSize", 1000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_storeFileSize", 2000, agg);
+ HELPER.assertGauge("Namespace_default_table_testTableMetrics_metric_tableSize", 3000, agg);
}
}
\ No newline at end of file