1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.master;
20
21 import org.apache.hadoop.hbase.classification.InterfaceAudience;
22 import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
23 import org.apache.hadoop.metrics2.lib.MutableHistogram;
24
25 @InterfaceAudience.Private
26 public class MetricsSnapshotSourceImpl extends BaseSourceImpl implements MetricsSnapshotSource {
27
28 private MutableHistogram snapshotTimeHisto;
29 private MutableHistogram snapshotCloneTimeHisto;
30 private MutableHistogram snapshotRestoreTimeHisto;
31
32 public MetricsSnapshotSourceImpl() {
33 this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);
34 }
35
36 public MetricsSnapshotSourceImpl(String metricsName,
37 String metricsDescription,
38 String metricsContext, String metricsJmxContext) {
39 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
40 }
41
42 @Override
43 public void init() {
44 snapshotTimeHisto = metricsRegistry.newTimeHistogram(
45 SNAPSHOT_TIME_NAME, SNAPSHOT_TIME_DESC);
46 snapshotCloneTimeHisto = metricsRegistry.newTimeHistogram(
47 SNAPSHOT_CLONE_TIME_NAME, SNAPSHOT_CLONE_TIME_DESC);
48 snapshotRestoreTimeHisto = metricsRegistry.newTimeHistogram(
49 SNAPSHOT_RESTORE_TIME_NAME, SNAPSHOT_RESTORE_TIME_DESC);
50 }
51
52 @Override
53 public void updateSnapshotTime(long time) {
54 snapshotTimeHisto.add(time);
55 }
56
57 @Override
58 public void updateSnapshotCloneTime(long time) {
59 snapshotCloneTimeHisto.add(time);
60 }
61
62 @Override
63 public void updateSnapshotRestoreTime(long time) {
64 snapshotRestoreTimeHisto.add(time);
65 }
66 }