1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.thrift;
20
21 import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
22 import org.apache.hadoop.metrics2.lib.MetricMutableGaugeLong;
23 import org.apache.hadoop.metrics2.lib.MetricMutableHistogram;
24 import org.apache.hadoop.metrics2.lib.MetricMutableStat;
25
26
27
28
29
30
31 public class MetricsThriftServerSourceImpl extends BaseSourceImpl implements
32 MetricsThriftServerSource {
33
34
35 private MetricMutableHistogram batchGetStat;
36 private MetricMutableHistogram batchMutateStat;
37 private MetricMutableHistogram queueTimeStat;
38
39 private MetricMutableHistogram thriftCallStat;
40 private MetricMutableHistogram thriftSlowCallStat;
41
42 private MetricMutableGaugeLong callQueueLenGauge;
43
44 public MetricsThriftServerSourceImpl(String metricsName,
45 String metricsDescription,
46 String metricsContext,
47 String metricsJmxContext) {
48 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
49 }
50
51
52 @Override
53 public void init() {
54 super.init();
55 batchGetStat = getMetricsRegistry().newTimeHistogram(BATCH_GET_KEY);
56 batchMutateStat = getMetricsRegistry().newTimeHistogram(BATCH_MUTATE_KEY);
57 queueTimeStat = getMetricsRegistry().newTimeHistogram(TIME_IN_QUEUE_KEY);
58 thriftCallStat = getMetricsRegistry().newTimeHistogram(THRIFT_CALL_KEY);
59 thriftSlowCallStat = getMetricsRegistry().newTimeHistogram(SLOW_THRIFT_CALL_KEY);
60 callQueueLenGauge = getMetricsRegistry().getLongGauge(CALL_QUEUE_LEN_KEY, 0);
61 }
62
63 @Override
64 public void incTimeInQueue(long time) {
65 queueTimeStat.add(time);
66 }
67
68 @Override
69 public void setCallQueueLen(int len) {
70 callQueueLenGauge.set(len);
71 }
72
73 @Override
74 public void incNumRowKeysInBatchGet(int diff) {
75 batchGetStat.add(diff);
76 }
77
78 @Override
79 public void incNumRowKeysInBatchMutate(int diff) {
80 batchMutateStat.add(diff);
81 }
82
83 @Override
84 public void incMethodTime(String name, long time) {
85 MetricMutableHistogram s = getMetricsRegistry().getHistogram(name);
86 s.add(time);
87 }
88
89 @Override
90 public void incCall(long time) {
91 thriftCallStat.add(time);
92 }
93
94 @Override
95 public void incSlowCall(long time) {
96 thriftSlowCallStat.add(time);
97 }
98
99 }