Skip to content

Commit 69ce79f

Browse files
committed
HBASE-29972 Expose HBase version in metrics
1 parent ac62af6 commit 69ce79f

12 files changed

Lines changed: 41 additions & 2 deletions

File tree

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSource.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ public interface MetricsMasterSource extends BaseSource {
7171
String CLUSTER_READ_REQUESTS_NAME = "clusterReadRequests";
7272
String CLUSTER_WRITE_REQUESTS_NAME = "clusterWriteRequests";
7373
String OLD_WAL_DIR_SIZE_NAME = "oldWALsDirSize";
74+
String HBASE_VERSION_NAME = "hbaseVersion";
75+
7476
String MASTER_ACTIVE_TIME_DESC = "Master Active Time";
7577
String MASTER_START_TIME_DESC = "Master Start Time";
7678
String MASTER_FINISHED_INITIALIZATION_TIME_DESC =
@@ -93,6 +95,7 @@ public interface MetricsMasterSource extends BaseSource {
9395

9496
String SERVER_CRASH_METRIC_PREFIX = "serverCrash";
9597
String OLD_WAL_DIR_SIZE_DESC = "size of old WALs directory in bytes";
98+
String HBASE_VERSION_DESC = "HBase Version";
9699

97100
/**
98101
* Increment the number of requests the cluster has seen.

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) {
131131
.tag(Interns.info(IS_ACTIVE_MASTER_NAME, IS_ACTIVE_MASTER_DESC),
132132
String.valueOf(masterWrapper.getIsActiveMaster()))
133133
.addGauge(Interns.info(OLD_WAL_DIR_SIZE_NAME, OLD_WAL_DIR_SIZE_DESC),
134-
masterWrapper.getOldWALsDirSize());
134+
masterWrapper.getOldWALsDirSize())
135+
.tag(Interns.info(HBASE_VERSION_NAME, HBASE_VERSION_DESC), masterWrapper.getSoftwareVersion());
135136
}
136137

137138
metricsRegistry.snapshot(metricsRecordBuilder, all);

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapper.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,4 +158,9 @@ public interface MetricsMasterWrapper {
158158
* Get the size of old WALs directory in bytes.
159159
*/
160160
long getOldWALsDirSize();
161+
162+
/*
163+
* Get the HBase version.
164+
*/
165+
String getSoftwareVersion();
161166
}

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,4 +673,6 @@ public interface MetricsRegionServerSource extends BaseSource, JvmPauseMonitorSo
673673
"Count of slow/connect error DataNodes excluded during WAL write operation";
674674
String EXCLUDE_DATA_NODES_DETAILS = "excludedDataNodesDetails";
675675
String EXCLUDE_DATA_NODES_DETAILS_DESC = "Excluded DataNodes info";
676+
String HBASE_VERSION_NAME = "hbaseVersion";
677+
String HBASE_VERSION_DESC = "The version of HBase";
676678
}

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,8 @@ public void getMetrics(MetricsCollector metricsCollector, boolean all) {
502502
.tag(Interns.info(ZOOKEEPER_QUORUM_NAME, ZOOKEEPER_QUORUM_DESC),
503503
rsWrap.getZookeeperQuorum())
504504
.tag(Interns.info(SERVER_NAME_NAME, SERVER_NAME_DESC), rsWrap.getServerName())
505-
.tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), rsWrap.getClusterId());
505+
.tag(Interns.info(CLUSTER_ID_NAME, CLUSTER_ID_DESC), rsWrap.getClusterId())
506+
.tag(Interns.info(HBASE_VERSION_NAME, HBASE_VERSION_DESC), rsWrap.getSoftwareVersion());
506507
if (!rsWrap.getWALExcludeDNs().isEmpty()) {
507508
metricsRecordBuilder.tag(
508509
Interns.info(EXCLUDE_DATA_NODES_DETAILS, EXCLUDE_DATA_NODES_DETAILS_DESC),

hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,4 +688,6 @@ public interface MetricsRegionServerWrapper {
688688
long getByteBuffAllocatorUsedBufferCount();
689689

690690
int getActiveScanners();
691+
692+
String getSoftwareVersion();
691693
}

hbase-server/src/main/java/org/apache/hadoop/hbase/master/MetricsMasterWrapperImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.apache.hadoop.hbase.quotas.QuotaObserverChore;
3333
import org.apache.hadoop.hbase.quotas.SpaceQuotaSnapshot;
3434
import org.apache.hadoop.hbase.util.PairOfSameType;
35+
import org.apache.hadoop.hbase.util.VersionInfo;
3536
import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
3637
import org.apache.yetus.audience.InterfaceAudience;
3738

@@ -246,4 +247,9 @@ public long getOldWALsDirSize() {
246247
}
247248
return master.getMasterWalManager().getOldWALsDirSize();
248249
}
250+
251+
@Override public String getSoftwareVersion() {
252+
return VersionInfo.getVersion() + ", r" + VersionInfo.getRevision();
253+
}
254+
249255
}

hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.apache.hadoop.hbase.regionserver.wal.MetricsWALSource;
4545
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
4646
import org.apache.hadoop.hbase.util.FSUtils;
47+
import org.apache.hadoop.hbase.util.VersionInfo;
4748
import org.apache.hadoop.hbase.wal.WALProvider;
4849
import org.apache.hadoop.hbase.zookeeper.ZKWatcher;
4950
import org.apache.hadoop.hdfs.DFSHedgedReadMetrics;
@@ -776,6 +777,11 @@ public int getActiveScanners() {
776777
return regionServer.getRpcServices().getScannersCount();
777778
}
778779

780+
@Override
781+
public String getSoftwareVersion() {
782+
return VersionInfo.getVersion() + ", r" + VersionInfo.getRevision();
783+
}
784+
779785
private static final class RegionMetricAggregate {
780786
private long numStores = 0;
781787
private long numStoreFiles = 0;

hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetrics.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import org.apache.hadoop.hbase.testclassification.MasterTests;
3434
import org.apache.hadoop.hbase.testclassification.MediumTests;
3535
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
36+
import org.apache.hadoop.hbase.util.VersionInfo;
3637
import org.apache.zookeeper.KeeperException;
3738
import org.junit.AfterClass;
3839
import org.junit.BeforeClass;
@@ -180,6 +181,8 @@ public void testDefaultMasterMetrics() throws Exception {
180181
metricsHelper.assertTag("serverName", master.getServerName().toString(), masterSource);
181182
metricsHelper.assertTag("clusterId", master.getClusterId(), masterSource);
182183
metricsHelper.assertTag("zookeeperQuorum", master.getZooKeeper().getQuorum(), masterSource);
184+
metricsHelper.assertTag("hbaseVersion",
185+
VersionInfo.getVersion() + ", r" + VersionInfo.getRevision(), masterSource);
183186

184187
metricsHelper.assertCounter(MetricsMasterSource.SERVER_CRASH_METRIC_PREFIX + "SubmittedCount",
185188
0, masterSource);

hbase-server/src/test/java/org/apache/hadoop/hbase/master/TestMasterMetricsWrapper.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.junit.Assert.fail;
2222

2323
import java.io.IOException;
24+
import org.apache.hadoop.hbase.util.VersionInfo;
2425
import java.util.AbstractMap.SimpleImmutableEntry;
2526
import java.util.List;
2627
import org.apache.hadoop.hbase.HBaseClassTestRule;
@@ -86,7 +87,10 @@ public void testInfo() throws IOException {
8687
assertEquals(master.getServerManager().getOnlineServersList().size(),
8788
info.getNumRegionServers());
8889
assertEquals(master.getMasterWalManager().getOldWALsDirSize(), info.getOldWALsDirSize());
90+
assertEquals(VersionInfo.getVersion() + ", r" + VersionInfo.getRevision(),
91+
info.getSoftwareVersion());
8992
int regionServerCount = NUM_RS;
93+
9094
assertEquals(regionServerCount, info.getNumRegionServers());
9195

9296
String zkServers = info.getZookeeperQuorum();

0 commit comments

Comments
 (0)