1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.regionserver;
20
21 import org.apache.commons.logging.Log;
22 import org.apache.commons.logging.LogFactory;
23 import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
24 import org.apache.hadoop.metrics2.MetricsBuilder;
25 import org.apache.hadoop.metrics2.MetricsRecordBuilder;
26
27 import java.util.TreeSet;
28
29 public class MetricsRegionAggregateSourceImpl extends BaseSourceImpl
30 implements MetricsRegionAggregateSource {
31 private final Log LOG = LogFactory.getLog(this.getClass());
32
33 private final TreeSet<MetricsRegionSourceImpl> regionSources =
34 new TreeSet<MetricsRegionSourceImpl>();
35
36 public MetricsRegionAggregateSourceImpl() {
37 this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);
38 }
39
40
41 public MetricsRegionAggregateSourceImpl(String metricsName,
42 String metricsDescription,
43 String metricsContext,
44 String metricsJmxContext) {
45 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
46 }
47
48 @Override
49 public void register(MetricsRegionSource source) {
50 regionSources.add((MetricsRegionSourceImpl) source);
51 }
52
53 @Override
54 public void deregister(MetricsRegionSource source) {
55 regionSources.remove(source);
56 }
57
58
59
60
61
62
63
64
65
66 @Override
67 public void getMetrics(MetricsBuilder metricsBuilder, boolean all) {
68
69
70 MetricsRecordBuilder mrb = metricsBuilder.addRecord(metricsName)
71 .setContext(metricsContext);
72
73 if (regionSources != null) {
74 for (MetricsRegionSourceImpl regionMetricSource : regionSources) {
75 regionMetricSource.snapshot(mrb, all);
76 }
77 }
78
79
80 metricsRegistry.snapshot(mrb, all);
81 }
82 }