1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.hadoop.hbase.rest.metrics;
22
23 import org.apache.hadoop.hbase.metrics.MetricsRate;
24
25 import org.apache.hadoop.metrics.MetricsContext;
26 import org.apache.hadoop.metrics.MetricsRecord;
27 import org.apache.hadoop.metrics.MetricsUtil;
28 import org.apache.hadoop.metrics.Updater;
29 import org.apache.hadoop.metrics.jvm.JvmMetrics;
30 import org.apache.hadoop.metrics.util.MetricsRegistry;
31
32 public class RESTMetrics implements Updater {
33 private final MetricsRecord metricsRecord;
34 private final MetricsRegistry registry = new MetricsRegistry();
35 private final RESTStatistics restStatistics;
36
37 private MetricsRate requests = new MetricsRate("requests", registry);
38
39 public RESTMetrics() {
40 MetricsContext context = MetricsUtil.getContext("rest");
41 metricsRecord = MetricsUtil.createRecord(context, "rest");
42 String name = Thread.currentThread().getName();
43 metricsRecord.setTag("REST", name);
44 context.registerUpdater(this);
45 JvmMetrics.init("rest", name);
46
47 restStatistics = new RESTStatistics(registry);
48
49 }
50
51 public void shutdown() {
52 if (restStatistics != null) {
53 restStatistics.shutdown();
54 }
55 }
56
57
58
59
60
61
62 public void doUpdates(MetricsContext unused) {
63 synchronized (this) {
64 requests.pushMetric(metricsRecord);
65 }
66 this.metricsRecord.update();
67 }
68
69 public void resetAllMinMax() {
70
71 }
72
73
74
75
76 public float getRequests() {
77 return requests.getPreviousIntervalValue();
78 }
79
80
81
82
83 public void incrementRequests(final int inc) {
84 requests.inc(inc);
85 }
86
87 }