Amend HBASE-16448 Custom metrics for custom replication endpoints Add missing support in hbase-hadoop1-compat
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e7800870 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e7800870 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e7800870 Branch: refs/heads/0.98 Commit: e78008700bcf30443cdd94b206575d8bb2ce31f8 Parents: 6fbdc38 Author: Andrew Purtell <apurt...@apache.org> Authored: Wed Aug 24 17:44:21 2016 -0700 Committer: Andrew Purtell <apurt...@apache.org> Committed: Wed Aug 24 17:44:21 2016 -0700 ---------------------------------------------------------------------- .../MetricsReplicationGlobalSourceSource.java | 64 ++++++++++++++- .../MetricsReplicationSourceSourceImpl.java | 82 +++++++++++++++++--- 2 files changed, 135 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/e7800870/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java ---------------------------------------------------------------------- diff --git a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java index 620b764..ee59b1c 100644 --- a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java +++ b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java @@ -22,7 +22,7 @@ import org.apache.hadoop.metrics2.lib.MetricMutableCounterLong; import org.apache.hadoop.metrics2.lib.MetricMutableGaugeLong; public class MetricsReplicationGlobalSourceSource implements MetricsReplicationSourceSource { - + private final MetricsReplicationSource rms; private final MetricMutableGaugeLong ageOfLastShippedOpGauge; private long ageOfLastShipped; // Hadoop 1 metrics don't let you read from gauges private final MetricMutableGaugeLong sizeOfLogQueueGauge; @@ -36,7 +36,7 @@ public class MetricsReplicationGlobalSourceSource implements MetricsReplicationS private final MetricMutableCounterLong logReadInBytesCounter; public MetricsReplicationGlobalSourceSource(MetricsReplicationSourceImpl rms) { - + this.rms = rms; ageOfLastShippedOpGauge = rms.getMetricsRegistry().getLongGauge(SOURCE_AGE_OF_LAST_SHIPPED_OP, 0L); sizeOfLogQueueGauge = rms.getMetricsRegistry().getLongGauge(SOURCE_SIZE_OF_LOG_QUEUE, 0L); @@ -115,4 +115,64 @@ public class MetricsReplicationGlobalSourceSource implements MetricsReplicationS public long getLastShippedAge() { return ageOfLastShipped; } + + @Override + public void init() { + rms.init(); + } + + @Override + public void setGauge(String gaugeName, long value) { + rms.setGauge(gaugeName, value); + } + + @Override + public void incGauge(String gaugeName, long delta) { + rms.incGauge(gaugeName, delta); + } + + @Override + public void decGauge(String gaugeName, long delta) { + rms.decGauge(gaugeName, delta); + } + + @Override + public void removeMetric(String key) { + rms.removeMetric(key); + } + + @Override + public void incCounters(String counterName, long delta) { + rms.incCounters(counterName, delta); + } + + @Override + public void updateHistogram(String name, long value) { + rms.updateHistogram(name, value); + } + + @Override + public void updateQuantile(String name, long value) { + rms.updateQuantile(name, value); + } + + @Override + public String getMetricsContext() { + return rms.getMetricsContext(); + } + + @Override + public String getMetricsDescription() { + return rms.getMetricsDescription(); + } + + @Override + public String getMetricsJmxContext() { + return rms.getMetricsJmxContext(); + } + + @Override + public String getMetricsName() { + return rms.getMetricsName(); + } } http://git-wip-us.apache.org/repos/asf/hbase/blob/e7800870/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java ---------------------------------------------------------------------- diff --git a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java index 21a6cb3..e15af46 100644 --- a/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java +++ b/hbase-hadoop1-compat/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java @@ -31,6 +31,8 @@ public class MetricsReplicationSourceSourceImpl implements MetricsReplicationSou private final String logEditsFilteredKey; private final String shippedBatchesKey; private final String shippedOpsKey; + private String keyPrefix; + @Deprecated private final String shippedKBsKey; private final String shippedBytesKey; @@ -50,32 +52,33 @@ public class MetricsReplicationSourceSourceImpl implements MetricsReplicationSou public MetricsReplicationSourceSourceImpl(MetricsReplicationSourceImpl rms, String id) { this.rms = rms; this.id = id; + this.keyPrefix = "source." + this.id + "."; - ageOfLastShippedOpKey = "source." + id + ".ageOfLastShippedOp"; + ageOfLastShippedOpKey = this.keyPrefix + ".ageOfLastShippedOp"; ageOfLastShippedOpGauge = rms.getMetricsRegistry().getLongGauge(ageOfLastShippedOpKey, 0L); - sizeOfLogQueueKey = "source." + id + ".sizeOfLogQueue"; + sizeOfLogQueueKey = this.keyPrefix + ".sizeOfLogQueue"; sizeOfLogQueueGauge = rms.getMetricsRegistry().getLongGauge(sizeOfLogQueueKey, 0L); - shippedBatchesKey = "source." + this.id + ".shippedBatches"; + shippedBatchesKey = this.keyPrefix + ".shippedBatches"; shippedBatchesCounter = rms.getMetricsRegistry().getLongCounter(shippedBatchesKey, 0L); - shippedOpsKey = "source." + this.id + ".shippedOps"; + shippedOpsKey = this.keyPrefix + ".shippedOps"; shippedOpsCounter = rms.getMetricsRegistry().getLongCounter(shippedOpsKey, 0L); - shippedKBsKey = "source." + this.id + ".shippedKBs"; + shippedKBsKey = this.keyPrefix + ".shippedKBs"; shippedKBsCounter = rms.getMetricsRegistry().getLongCounter(shippedKBsKey, 0L); - shippedBytesKey = "source." + this.id + ".shippedBytes"; + shippedBytesKey = this.keyPrefix + ".shippedBytes"; shippedBytesCounter = rms.getMetricsRegistry().getLongCounter(shippedBytesKey, 0L); - logReadInBytesKey = "source." + this.id + ".logReadInBytes"; + logReadInBytesKey = this.keyPrefix + ".logReadInBytes"; logReadInBytesCounter = rms.getMetricsRegistry().getLongCounter(logReadInBytesKey, 0L); - logReadInEditsKey = "source." + id + ".logEditsRead"; + logReadInEditsKey = this.keyPrefix + ".logEditsRead"; logReadInEditsCounter = rms.getMetricsRegistry().getLongCounter(logReadInEditsKey, 0L); - logEditsFilteredKey = "source." + id + ".logEditsFiltered"; + logEditsFilteredKey = this.keyPrefix + ".logEditsFiltered"; logEditsFilteredCounter = rms.getMetricsRegistry().getLongCounter(logEditsFilteredKey, 0L); } @@ -140,4 +143,65 @@ public class MetricsReplicationSourceSourceImpl implements MetricsReplicationSou public long getLastShippedAge() { return ageOfLastShipped; } + + + @Override + public void init() { + rms.init(); + } + + @Override + public void setGauge(String gaugeName, long value) { + rms.setGauge(this.keyPrefix + gaugeName, value); + } + + @Override + public void incGauge(String gaugeName, long delta) { + rms.incGauge(this.keyPrefix + gaugeName, delta); + } + + @Override + public void decGauge(String gaugeName, long delta) { + rms.decGauge(this.keyPrefix + gaugeName, delta); + } + + @Override + public void removeMetric(String key) { + rms.removeMetric(this.keyPrefix + key); + } + + @Override + public void incCounters(String counterName, long delta) { + rms.incCounters(this.keyPrefix + counterName, delta); + } + + @Override + public void updateHistogram(String name, long value) { + rms.updateHistogram(this.keyPrefix + name, value); + } + + @Override + public void updateQuantile(String name, long value) { + rms.updateQuantile(this.keyPrefix + name, value); + } + + @Override + public String getMetricsContext() { + return rms.getMetricsContext(); + } + + @Override + public String getMetricsDescription() { + return rms.getMetricsDescription(); + } + + @Override + public String getMetricsJmxContext() { + return rms.getMetricsJmxContext(); + } + + @Override + public String getMetricsName() { + return rms.getMetricsName(); + } }