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.MetricMutableStat;
24
25
26
27
28
29
30 public class MetricsThriftServerSourceImpl extends BaseSourceImpl implements
31 MetricsThriftServerSource {
32
33
34 private MetricMutableStat batchGetStat;
35 private MetricMutableStat batchMutateStat;
36 private MetricMutableStat queueTimeStat;
37
38 private MetricMutableStat thriftCallStat;
39 private MetricMutableStat thriftSlowCallStat;
40
41 private MetricMutableGaugeLong callQueueLenGauge;
42
43 public MetricsThriftServerSourceImpl(String metricsName,
44 String metricsDescription,
45 String metricsContext,
46 String metricsJmxContext) {
47 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
48 }
49
50
51 @Override
52 public void init() {
53 super.init();
54 batchGetStat = getMetricsRegistry().newStat(BATCH_GET_KEY, "", "Keys", "Ops");
55 batchMutateStat = getMetricsRegistry().newStat(BATCH_MUTATE_KEY, "", "Keys", "Ops");
56 queueTimeStat = getMetricsRegistry().newStat(TIME_IN_QUEUE_KEY);
57 thriftCallStat = getMetricsRegistry().newStat(THRIFT_CALL_KEY);
58 thriftSlowCallStat = getMetricsRegistry().newStat(SLOW_THRIFT_CALL_KEY);
59 callQueueLenGauge = getMetricsRegistry().getLongGauge(CALL_QUEUE_LEN_KEY, 0);
60 }
61
62 @Override
63 public void incTimeInQueue(long time) {
64 queueTimeStat.add(time);
65 }
66
67 @Override
68 public void setCallQueueLen(int len) {
69 callQueueLenGauge.set(len);
70 }
71
72 @Override
73 public void incNumRowKeysInBatchGet(int diff) {
74 batchGetStat.add(diff);
75 }
76
77 @Override
78 public void incNumRowKeysInBatchMutate(int diff) {
79 batchMutateStat.add(diff);
80 }
81
82 @Override
83 public void incMethodTime(String name, long time) {
84 MetricMutableStat s = getMetricsRegistry().newStat(name);
85 s.add(time);
86 }
87
88 @Override
89 public void incCall(long time) {
90 thriftCallStat.add(time);
91 }
92
93 @Override
94 public void incSlowCall(long time) {
95 thriftSlowCallStat.add(time);
96 }
97
98 }