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 CoprocessorService requests that have been issued against this region
075   */
076  long getCpRequestCount();
077
078  /**
079   * Get the total number of filtered read requests that have been issued against this region
080   */
081  long getFilteredReadRequestCount();
082
083  /**
084   * @return Max age of store files under this region
085   */
086  long getMaxStoreFileAge();
087
088  /**
089   * @return Min age of store files under this region
090   */
091  long getMinStoreFileAge();
092
093  /**
094   * @return Average age of store files under this region
095   */
096  long getAvgStoreFileAge();
097
098  /**
099   * @return Number of reference files under this region
100   */
101  long getNumReferenceFiles();
102
103  /**
104   * Get the total number of mutations that have been issued against this region.
105   */
106  long getWriteRequestCount();
107
108  long getTotalRequestCount();
109
110  long getNumFilesCompacted();
111
112  long getNumBytesCompacted();
113
114  long getNumCompactionsCompleted();
115
116  /**
117   * @return Age of the last major compaction
118   */
119  long getLastMajorCompactionAge();
120
121  /**
122   * Returns the total number of compactions that have been reported as failed on this region. Note
123   * that a given compaction can be reported as both completed and failed if an exception is thrown
124   * in the processing after {@code HRegion.compact()}.
125   */
126  long getNumCompactionsFailed();
127
128  /**
129   * @return the total number of compactions that are currently queued(or being executed) at point
130   *         in time
131   */
132  long getNumCompactionsQueued();
133
134  /**
135   * @return the total number of flushes currently queued(being executed) for this region at point
136   *         in time
137   */
138  long getNumFlushesQueued();
139
140  /**
141   * Note that this metric is updated periodically and hence might miss some data points.
142   * @return the max number of compactions queued for this region
143   */
144  long getMaxCompactionQueueSize();
145
146  /**
147   * Note that this metric is updated periodically and hence might miss some data points.
148   * @return the max number of flushes queued for this region
149   */
150  long getMaxFlushQueueSize();
151
152  int getRegionHashCode();
153
154  /**
155   * Get the replica id of this region.
156   */
157  int getReplicaId();
158
159  /**
160   * @return the number of references active on the store
161   */
162  long getStoreRefCount();
163
164  /**
165   * @return the max number of references active on any store file among all compacted store files
166   *         that belong to this region
167   */
168  long getMaxCompactedStoreFileRefCount();
169
170  /**
171   * @return the number of row reads completely on memstore per store
172   */
173  Map<String, Long> getMemstoreOnlyRowReadsCount();
174
175  /**
176   * @return the number of row reads on memstore and file per store
177   */
178  Map<String, Long> getMixedRowReadsCount();
179
180}