Author: tedyu
Date: Tue Dec 31 01:34:37 2013
New Revision: 1554347

URL: http://svn.apache.org/r1554347
Log:
HBASE-10213 Add read log size per second metrics for replication source


Modified:
    
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java
    
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java

Modified: 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java?rev=1554347&r1=1554346&r2=1554347&view=diff
==============================================================================
--- 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java
 (original)
+++ 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java
 Tue Dec 31 01:34:37 2013
@@ -37,6 +37,7 @@ public class MetricsSource {
   public static final String SOURCE_LOG_EDITS_FILTERED = 
"source.logEditsFiltered";
   public static final String SOURCE_SHIPPED_BATCHES = "source.shippedBatches";
   public static final String SOURCE_SHIPPED_OPS = "source.shippedOps";
+  public static final String SOURCE_LOG_READ_IN_BYTES = 
"source.logReadInBytes";
 
   public static final Log LOG = LogFactory.getLog(MetricsSource.class);
   private String id;
@@ -50,6 +51,7 @@ public class MetricsSource {
   private String logEditsFilteredKey;
   private final String shippedBatchesKey;
   private final String shippedOpsKey;
+  private final String logReadInBytesKey;
 
   private MetricsReplicationSource rms;
 
@@ -67,6 +69,7 @@ public class MetricsSource {
     logEditsFilteredKey = "source." + id + ".logEditsFiltered";
     shippedBatchesKey = "source." + this.id + ".shippedBatches";
     shippedOpsKey = "source." + this.id + ".shippedOps";
+    logReadInBytesKey = "source." + this.id + ".logReadInBytes";
     rms = 
CompatibilitySingletonFactory.getInstance(MetricsReplicationSource.class);
   }
 
@@ -144,6 +147,12 @@ public class MetricsSource {
     rms.incCounters(shippedOpsKey, batchSize);
     rms.incCounters(SOURCE_SHIPPED_OPS, batchSize);
   }
+  
+  /** increase the byte number read by source from log file */
+  public void incrLogReadInByes(long readInBytes) {
+    rms.incCounters(logReadInBytesKey, readInBytes);
+    rms.incCounters(SOURCE_LOG_READ_IN_BYTES, readInBytes);
+  }
 
   /** Removes all metrics about this Source. */
   public void clear() {

Modified: 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java?rev=1554347&r1=1554346&r2=1554347&view=diff
==============================================================================
--- 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
 (original)
+++ 
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java
 Tue Dec 31 01:34:37 2013
@@ -377,6 +377,7 @@ public class ReplicationSource extends T
           + this.repLogReader.getPosition());
     }
     this.repLogReader.seek();
+    long positionBeforeRead = this.repLogReader.getPosition();
     HLog.Entry entry =
         this.repLogReader.readNextAndSetPosition();
     while (entry != null) {
@@ -413,6 +414,7 @@ public class ReplicationSource extends T
         break;
       }
     }
+    metrics.incrLogReadInByes(this.repLogReader.getPosition() - 
positionBeforeRead);
     if (currentWALisBeingWrittenTo) {
       return false;
     }


Reply via email to