View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to you under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    * http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.hadoop.hbase.regionserver;
18  
19  import org.apache.hadoop.hbase.CompatibilitySingletonFactory;
20  import org.apache.hadoop.hbase.TableName;
21  import org.apache.hadoop.hbase.classification.InterfaceAudience;
22  
23  /**
24   * Captures operation metrics by table. Separates metrics collection for table metrics away from
25   * {@link MetricsRegionServer} for encapsulation and ease of testing.
26   */
27  @InterfaceAudience.Private
28  public class RegionServerTableMetrics {
29  
30    private final MetricsTableLatencies latencies;
31  
32    public RegionServerTableMetrics() {
33      latencies = CompatibilitySingletonFactory.getInstance(MetricsTableLatencies.class);
34    }
35  
36    public void updatePut(TableName table, long time) {
37      latencies.updatePut(table.getNameAsString(), time);
38    }
39  
40    public void updateGet(TableName table, long time) {
41      latencies.updateGet(table.getNameAsString(), time);
42    }
43  
44    public void updateIncrement(TableName table, long time) {
45      latencies.updateIncrement(table.getNameAsString(), time);
46    }
47  
48    public void updateAppend(TableName table, long time) {
49      latencies.updateAppend(table.getNameAsString(), time);
50    }
51  
52    public void updateDelete(TableName table, long time) {
53      latencies.updateDelete(table.getNameAsString(), time);
54    }
55  
56    public void updateScanTime(TableName table, long time) {
57      latencies.updateScanTime(table.getNameAsString(), time);
58    }
59  
60    public void updateScanSize(TableName table, long size) {
61      latencies.updateScanSize(table.getNameAsString(), size);
62    }
63  }