1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.replication.regionserver;
20
21 import org.apache.hadoop.metrics2.lib.MutableFastCounter;
22 import org.apache.hadoop.metrics2.lib.MutableGaugeLong;
23
24 public class MetricsReplicationGlobalSourceSource implements MetricsReplicationSourceSource{
25 private final MetricsReplicationSourceImpl rms;
26
27 private final MutableGaugeLong ageOfLastShippedOpGauge;
28 private final MutableGaugeLong sizeOfLogQueueGauge;
29 private final MutableFastCounter logReadInEditsCounter;
30 private final MutableFastCounter logEditsFilteredCounter;
31 private final MutableFastCounter shippedBatchesCounter;
32 private final MutableFastCounter shippedOpsCounter;
33 private final MutableFastCounter shippedKBsCounter;
34 private final MutableFastCounter logReadInBytesCounter;
35 private final MutableFastCounter shippedHFilesCounter;
36 private final MutableGaugeLong sizeOfHFileRefsQueueGauge;
37 private final MutableFastCounter unknownFileLengthForClosedWAL;
38 private final MutableFastCounter uncleanlyClosedWAL;
39 private final MutableFastCounter uncleanlyClosedSkippedBytes;
40 private final MutableFastCounter restartWALReading;
41 private final MutableFastCounter repeatedFileBytes;
42 private final MutableFastCounter completedWAL;
43 private final MutableFastCounter completedRecoveryQueue;
44
45 public MetricsReplicationGlobalSourceSource(MetricsReplicationSourceImpl rms) {
46 this.rms = rms;
47
48 ageOfLastShippedOpGauge = rms.getMetricsRegistry().getGauge(SOURCE_AGE_OF_LAST_SHIPPED_OP, 0L);
49
50 sizeOfLogQueueGauge = rms.getMetricsRegistry().getGauge(SOURCE_SIZE_OF_LOG_QUEUE, 0L);
51
52 shippedBatchesCounter = rms.getMetricsRegistry().getCounter(SOURCE_SHIPPED_BATCHES, 0L);
53
54 shippedOpsCounter = rms.getMetricsRegistry().getCounter(SOURCE_SHIPPED_OPS, 0L);
55
56 shippedKBsCounter = rms.getMetricsRegistry().getCounter(SOURCE_SHIPPED_KBS, 0L);
57
58 logReadInBytesCounter = rms.getMetricsRegistry().getCounter(SOURCE_LOG_READ_IN_BYTES, 0L);
59
60 logReadInEditsCounter = rms.getMetricsRegistry().getCounter(SOURCE_LOG_READ_IN_EDITS, 0L);
61
62 logEditsFilteredCounter = rms.getMetricsRegistry().getCounter(SOURCE_LOG_EDITS_FILTERED, 0L);
63
64 shippedHFilesCounter = rms.getMetricsRegistry().getCounter(SOURCE_SHIPPED_HFILES, 0L);
65
66 sizeOfHFileRefsQueueGauge =
67 rms.getMetricsRegistry().getGauge(SOURCE_SIZE_OF_HFILE_REFS_QUEUE, 0L);
68
69 unknownFileLengthForClosedWAL = rms.getMetricsRegistry().getCounter(SOURCE_CLOSED_LOGS_WITH_UNKNOWN_LENGTH, 0L);
70 uncleanlyClosedWAL = rms.getMetricsRegistry().getCounter(SOURCE_UNCLEANLY_CLOSED_LOGS, 0L);
71 uncleanlyClosedSkippedBytes = rms.getMetricsRegistry().getCounter(SOURCE_UNCLEANLY_CLOSED_IGNORED_IN_BYTES, 0L);
72 restartWALReading = rms.getMetricsRegistry().getCounter(SOURCE_RESTARTED_LOG_READING, 0L);
73 repeatedFileBytes = rms.getMetricsRegistry().getCounter(SOURCE_REPEATED_LOG_FILE_BYTES, 0L);
74 completedWAL = rms.getMetricsRegistry().getCounter(SOURCE_COMPLETED_LOGS, 0L);
75 completedRecoveryQueue = rms.getMetricsRegistry().getCounter(SOURCE_COMPLETED_RECOVERY_QUEUES, 0L);
76 }
77
78 @Override public void setLastShippedAge(long age) {
79 ageOfLastShippedOpGauge.set(age);
80 }
81
82 @Override public void setSizeOfLogQueue(int size) {
83 sizeOfLogQueueGauge.set(size);
84 }
85
86 @Override public void incrSizeOfLogQueue(int size) {
87 sizeOfLogQueueGauge.incr(size);
88 }
89
90 @Override public void decrSizeOfLogQueue(int size) {
91 sizeOfLogQueueGauge.decr(size);
92 }
93
94 @Override public void incrLogReadInEdits(long size) {
95 logReadInEditsCounter.incr(size);
96 }
97
98 @Override public void incrLogEditsFiltered(long size) {
99 logEditsFilteredCounter.incr(size);
100 }
101
102 @Override public void incrBatchesShipped(int batches) {
103 shippedBatchesCounter.incr(batches);
104 }
105
106 @Override public void incrOpsShipped(long ops) {
107 shippedOpsCounter.incr(ops);
108 }
109
110 @Override public void incrShippedKBs(long size) {
111 shippedKBsCounter.incr(size);
112 }
113
114 @Override public void incrLogReadInBytes(long size) {
115 logReadInBytesCounter.incr(size);
116 }
117
118 @Override public void clear() {
119 }
120
121 @Override
122 public long getLastShippedAge() {
123 return ageOfLastShippedOpGauge.value();
124 }
125
126 @Override public void incrHFilesShipped(long hfiles) {
127 shippedHFilesCounter.incr(hfiles);
128 }
129
130 @Override
131 public void incrSizeOfHFileRefsQueue(long size) {
132 sizeOfHFileRefsQueueGauge.incr(size);
133 }
134
135 @Override
136 public void decrSizeOfHFileRefsQueue(long size) {
137 sizeOfHFileRefsQueueGauge.decr(size);
138 }
139
140 @Override
141 public void incrUnknownFileLengthForClosedWAL() {
142 unknownFileLengthForClosedWAL.incr(1L);
143 }
144 @Override
145 public void incrUncleanlyClosedWALs() {
146 uncleanlyClosedWAL.incr(1L);
147 }
148 @Override
149 public void incrBytesSkippedInUncleanlyClosedWALs(final long bytes) {
150 uncleanlyClosedSkippedBytes.incr(bytes);
151 }
152 @Override
153 public void incrRestartedWALReading() {
154 restartWALReading.incr(1L);
155 }
156 @Override
157 public void incrRepeatedFileBytes(final long bytes) {
158 repeatedFileBytes.incr(bytes);
159 }
160 @Override
161 public void incrCompletedWAL() {
162 completedWAL.incr(1L);
163 }
164 @Override
165 public void incrCompletedRecoveryQueue() {
166 completedRecoveryQueue.incr(1L);
167 }
168 }