1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.hbtop.mode;
19
20 import org.apache.hadoop.hbase.classification.InterfaceAudience;
21
22
23
24
25 @InterfaceAudience.Private
26 public class RequestCountPerSecond {
27 private long previousLastReportTimestamp;
28 private long previousReadRequestCount;
29 private long previousWriteRequestCount;
30 private long readRequestCountPerSecond;
31 private long writeRequestCountPerSecond;
32
33 public void refresh(long lastReportTimestamp, long readRequestCount, long writeRequestCount) {
34 if (previousLastReportTimestamp == 0) {
35 previousLastReportTimestamp = lastReportTimestamp;
36 previousReadRequestCount = readRequestCount;
37 previousWriteRequestCount = writeRequestCount;
38 } else if (previousLastReportTimestamp != lastReportTimestamp) {
39 long delta = (lastReportTimestamp - previousLastReportTimestamp) / 1000;
40 if (delta < 1) {
41 delta = 1;
42 }
43 readRequestCountPerSecond = (readRequestCount - previousReadRequestCount) / delta;
44 writeRequestCountPerSecond = (writeRequestCount - previousWriteRequestCount) / delta;
45
46 previousLastReportTimestamp = lastReportTimestamp;
47 previousReadRequestCount = readRequestCount;
48 previousWriteRequestCount = writeRequestCount;
49 }
50 }
51
52 public long getReadRequestCountPerSecond() {
53 return readRequestCountPerSecond < 0 ? 0 : readRequestCountPerSecond;
54 }
55
56 public long getWriteRequestCountPerSecond() {
57 return writeRequestCountPerSecond < 0 ? 0 : writeRequestCountPerSecond;
58 }
59
60 public long getRequestCountPerSecond() {
61 return getReadRequestCountPerSecond() + getWriteRequestCountPerSecond();
62 }
63 }