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.metrics.BaseSourceImpl;
22 import org.apache.hadoop.metrics2.lib.MetricMutableHistogram;
23
24 public class MetricsSnapshotSourceImpl extends BaseSourceImpl implements MetricsSnapshotSource {
25
26 private MetricMutableHistogram snapshotTimeHisto;
27 private MetricMutableHistogram snapshotCloneTimeHisto;
28 private MetricMutableHistogram snapshotRestoreTimeHisto;
29
30 public MetricsSnapshotSourceImpl() {
31 this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);
32 }
33
34 public MetricsSnapshotSourceImpl(String metricsName,
35 String metricsDescription,
36 String metricsContext, String metricsJmxContext) {
37 super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
38 }
39
40 @Override
41 public void init() {
42 snapshotTimeHisto = metricsRegistry.newTimeHistogram(
43 SNAPSHOT_TIME_NAME, SNAPSHOT_TIME_DESC);
44 snapshotCloneTimeHisto = metricsRegistry.newTimeHistogram(
45 SNAPSHOT_CLONE_TIME_NAME, SNAPSHOT_CLONE_TIME_DESC);
46 snapshotRestoreTimeHisto = metricsRegistry.newTimeHistogram(
47 SNAPSHOT_RESTORE_TIME_NAME, SNAPSHOT_RESTORE_TIME_DESC);
48 }
49
50 @Override
51 public void updateSnapshotTime(long time) {
52 snapshotTimeHisto.add(time);
53 }
54
55 @Override
56 public void updateSnapshotCloneTime(long time) {
57 snapshotCloneTimeHisto.add(time);
58 }
59
60 @Override
61 public void updateSnapshotRestoreTime(long time) {
62 snapshotRestoreTimeHisto.add(time);
63 }
64 }