1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.metrics2.lib;
20
21 import java.util.concurrent.atomic.AtomicLongArray;
22
23 import org.apache.hadoop.hbase.classification.InterfaceAudience;
24 import org.apache.hadoop.metrics2.MetricsInfo;
25
26
27
28
29 @InterfaceAudience.Private
30 public class MutableTimeHistogram extends MutableRangeHistogram {
31 private final String rangeType = "TimeRangeCount";
32 private final long[] ranges =
33 { 1, 3, 10, 30, 100, 300, 1000, 3000, 10000, 30000, 60000, 120000, 300000, 600000 };
34 private final AtomicLongArray rangeVals = new AtomicLongArray(ranges.length+1);
35
36 public MutableTimeHistogram(MetricsInfo info) {
37 this(info.name(), info.description());
38 }
39
40 public MutableTimeHistogram(String name, String description) {
41 super(name, description);
42 }
43
44 @Override
45 public String getRangeType() {
46 return rangeType;
47 }
48
49 @Override
50 public long[] getRange() {
51 return ranges;
52 }
53
54 @Override
55 public AtomicLongArray getRangeVals() {
56 return rangeVals;
57 }
58 }