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 */ 018package org.apache.hadoop.hbase.regionserver; 019 020import org.apache.hadoop.conf.Configuration; 021import org.apache.hadoop.hbase.CompatibilitySingletonFactory; 022import org.apache.yetus.audience.InterfaceAudience; 023 024/** 025 * This is the glue between the HRegion and whatever hadoop shim layer is loaded 026 * (hbase-hadoop1-compat or hbase-hadoop2-compat). 027 */ 028@InterfaceAudience.Private 029public class MetricsRegion { 030 private final MetricsRegionSource source; 031 private final MetricsUserAggregate userAggregate; 032 private MetricsRegionWrapper regionWrapper; 033 034 public MetricsRegion(final MetricsRegionWrapper wrapper, Configuration conf) { 035 source = CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class) 036 .createRegion(wrapper); 037 this.regionWrapper = wrapper; 038 userAggregate = MetricsUserAggregateFactory.getMetricsUserAggregate(conf); 039 } 040 041 public void close() { 042 source.close(); 043 } 044 045 public void updatePut() { 046 source.updatePut(); 047 } 048 049 public void updateDelete() { 050 source.updateDelete(); 051 } 052 053 public void updateGet(final long t) { 054 source.updateGet(t); 055 } 056 057 public void updateScanTime(final long t) { 058 source.updateScanTime(t); 059 } 060 061 public void updateFilteredRecords() { 062 userAggregate.updateFilteredReadRequests(); 063 } 064 065 public void updateAppend() { 066 source.updateAppend(); 067 } 068 069 public void updateIncrement() { 070 source.updateIncrement(); 071 } 072 073 MetricsRegionSource getSource() { 074 return source; 075 } 076 077 public MetricsRegionWrapper getRegionWrapper() { 078 return regionWrapper; 079 } 080 081 public void updateReadRequestCount() { 082 userAggregate.updateReadRequestCount(); 083 } 084}