001/**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *     http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018
019package org.apache.hadoop.hbase.master;
020
021import org.apache.hadoop.hbase.metrics.BaseSourceImpl;
022import org.apache.hadoop.metrics2.MetricHistogram;
023import org.apache.yetus.audience.InterfaceAudience;
024
025@InterfaceAudience.Private
026public class MetricsMasterFilesystemSourceImpl
027    extends BaseSourceImpl
028    implements MetricsMasterFileSystemSource {
029
030  private MetricHistogram splitSizeHisto;
031  private MetricHistogram splitTimeHisto;
032  private MetricHistogram metaSplitTimeHisto;
033  private MetricHistogram metaSplitSizeHisto;
034
035  public MetricsMasterFilesystemSourceImpl() {
036    this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);
037  }
038
039  public MetricsMasterFilesystemSourceImpl(String metricsName,
040                                           String metricsDescription,
041                                           String metricsContext, String metricsJmxContext) {
042    super(metricsName, metricsDescription, metricsContext, metricsJmxContext);
043  }
044
045  @Override
046  public void init() {
047    splitSizeHisto = metricsRegistry.newSizeHistogram(SPLIT_SIZE_NAME, SPLIT_SIZE_DESC);
048    splitTimeHisto = metricsRegistry.newTimeHistogram(SPLIT_TIME_NAME, SPLIT_TIME_DESC);
049    metaSplitTimeHisto =
050        metricsRegistry.newTimeHistogram(META_SPLIT_TIME_NAME, META_SPLIT_TIME_DESC);
051    metaSplitSizeHisto =
052        metricsRegistry.newSizeHistogram(META_SPLIT_SIZE_NAME, META_SPLIT_SIZE_DESC);
053  }
054
055  @Override
056  public void updateSplitTime(long time) {
057    splitTimeHisto.add(time);
058  }
059
060  @Override
061  public void updateSplitSize(long size) {
062    splitSizeHisto.add(size);
063  }
064
065
066  @Override
067  public void updateMetaWALSplitTime(long time) {
068    metaSplitTimeHisto.add(time);
069  }
070
071  @Override
072  public void updateMetaWALSplitSize(long size) {
073    metaSplitSizeHisto.add(size);
074  }
075}