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 java.util.Map;
021import org.apache.yetus.audience.InterfaceAudience;
022
023/**
024 * Interface of class that will wrap an HRegion and export numbers so they can be used in
025 * MetricsRegionSource
026 */
027@InterfaceAudience.Private
028public interface MetricsRegionWrapper {
029
030  /**
031   * Get the name of the table the region belongs to.
032   * @return The string version of the table name.
033   */
034  String getTableName();
035
036  /**
037   * Get the name of the namespace this table is in.
038   * @return String version of the namespace. Can't be empty.
039   */
040  String getNamespace();
041
042  /**
043   * Get the name of the region.
044   * @return The encoded name of the region.
045   */
046  String getRegionName();
047
048  /**
049   * Get the number of stores hosted on this region server.
050   */
051  long getNumStores();
052
053  /**
054   * Get the number of store files hosted on this region server.
055   */
056  long getNumStoreFiles();
057
058  /**
059   * Get the size of the memstore on this region server.
060   */
061  long getMemStoreSize();
062
063  /**
064   * Get the total size of the store files this region server is serving from.
065   */
066  long getStoreFileSize();
067
068  /**
069   * Get the total number of read requests that have been issued against this region
070   */
071  long getReadRequestCount();
072
073  /**
074   * Get the total number of filtered read requests that have been issued against this region
075   */
076  long getFilteredReadRequestCount();
077
078  /** Returns Max age of store files under this region */
079  long getMaxStoreFileAge();
080
081  /** Returns Min age of store files under this region */
082  long getMinStoreFileAge();
083
084  /** Returns Average age of store files under this region */
085  long getAvgStoreFileAge();
086
087  /** Returns Number of reference files under this region */
088  long getNumReferenceFiles();
089
090  /**
091   * Get the total number of mutations that have been issued against this region.
092   */
093  long getWriteRequestCount();
094
095  long getTotalRequestCount();
096
097  long getNumFilesCompacted();
098
099  long getNumBytesCompacted();
100
101  long getNumCompactionsCompleted();
102
103  /** Returns Age of the last major compaction */
104  long getLastMajorCompactionAge();
105
106  /**
107   * Returns the total number of compactions that have been reported as failed on this region. Note
108   * that a given compaction can be reported as both completed and failed if an exception is thrown
109   * in the processing after {@code HRegion.compact()}.
110   */
111  long getNumCompactionsFailed();
112
113  /**
114   * Returns the total number of compactions that are currently queued(or being executed) at point
115   * in time
116   */
117  long getNumCompactionsQueued();
118
119  /**
120   * Returns the total number of flushes currently queued(being executed) for this region at point
121   * in time
122   */
123  long getNumFlushesQueued();
124
125  /**
126   * @return the max number of compactions queued for this region Note that this metric is updated
127   *         periodically and hence might miss some data points
128   */
129  long getMaxCompactionQueueSize();
130
131  /**
132   * @return the max number of flushes queued for this region Note that this metric is updated
133   *         periodically and hence might miss some data points
134   */
135  long getMaxFlushQueueSize();
136
137  int getRegionHashCode();
138
139  /**
140   * Get the replica id of this region.
141   */
142  int getReplicaId();
143
144  /** Returns the number of references active on the store */
145  long getStoreRefCount();
146
147  /**
148   * Returns the max number of references active on any store file among all compacted store files
149   * that belong to this region
150   */
151  long getMaxCompactedStoreFileRefCount();
152
153  /** Returns the number of row reads completely on memstore per store */
154  Map<String, Long> getMemstoreOnlyRowReadsCount();
155
156  /** Returns the number of row reads on memstore and file per store */
157  Map<String, Long> getMixedRowReadsCount();
158
159}