View Javadoc

1   /**
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.hadoop.hbase.master;
19  
20  import org.apache.commons.lang.StringUtils;
21  import org.apache.hadoop.hbase.classification.InterfaceAudience;
22  import org.apache.hadoop.hbase.ServerName;
23  import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher;
24  
25  /**
26   * Impl for exposing HMaster Information through JMX
27   */
28  @InterfaceAudience.Private
29  public class MetricsMasterWrapperImpl implements MetricsMasterWrapper {
30  
31    private final HMaster master;
32  
33    public MetricsMasterWrapperImpl(final HMaster master) {
34      this.master = master;
35    }
36  
37    @Override
38    public double getAverageLoad() {
39      return master.getAverageLoad();
40    }
41  
42    @Override
43    public long getSplitPlanCount() {
44      return master.getSplitPlanCount();
45    }
46  
47    @Override
48    public long getMergePlanCount() {
49      return master.getMergePlanCount();
50    }
51  
52    @Override
53    public long getMasterInitializationTime() {
54      return master.getMasterFinishedInitializationTime();
55    }
56  
57    @Override
58    public String getClusterId() {
59      return master.getClusterId();
60    }
61  
62    @Override
63    public String getZookeeperQuorum() {
64      ZooKeeperWatcher zk = master.getZooKeeper();
65      if (zk == null) {
66        return "";
67      }
68      return zk.getQuorum();
69    }
70  
71    @Override
72    public String[] getCoprocessors() {
73      return master.getMasterCoprocessors();
74    }
75  
76    @Override
77    public long getStartTime() {
78      return master.getMasterStartTime();
79    }
80  
81    @Override
82    public long getActiveTime() {
83      return master.getMasterActiveTime();
84    }
85  
86    @Override
87    public String getRegionServers() {
88      ServerManager serverManager = this.master.getServerManager();
89      if (serverManager == null) {
90        return "";
91      }
92      return StringUtils.join(serverManager.getOnlineServers().keySet(), ";");
93    }
94    
95    @Override
96    public int getNumRegionServers() {
97      ServerManager serverManager = this.master.getServerManager();
98      if (serverManager == null) {
99        return 0;
100     }
101     return serverManager.getOnlineServers().size();
102   }
103 
104   @Override
105   public String getDeadRegionServers() {
106     ServerManager serverManager = this.master.getServerManager();
107     if (serverManager == null) {
108       return "";
109     }
110     return StringUtils.join(serverManager.getDeadServers().copyServerNames(), ";");
111   }
112 
113   
114   @Override
115   public int getNumDeadRegionServers() {
116     ServerManager serverManager = this.master.getServerManager();
117     if (serverManager == null) {
118       return 0;
119     }
120     return serverManager.getDeadServers().size();
121   }
122 
123   @Override
124   public String getDrainingRegionServers() {
125     ServerManager serverManager = this.master.getServerManager();
126     if (serverManager == null) {
127         return "";
128     }
129     return StringUtils.join(serverManager.getDrainingServersList()  , ";");
130   }
131 
132   @Override
133   public int getNumDrainingRegionServers() {
134     ServerManager serverManager = this.master.getServerManager();
135     if (serverManager == null) {
136         return 0;
137     }
138     return serverManager.getDrainingServersList().size();
139   }
140 
141   @Override
142   public String getServerName() {
143     ServerName serverName = master.getServerName();
144     if (serverName == null) {
145       return "";
146     }
147     return serverName.getServerName();
148   }
149 
150   @Override
151   public boolean getIsActiveMaster() {
152     return master.isActiveMaster();
153   }
154 
155   @Override
156   public long getNumWALFiles() {
157     return master.getNumWALFiles();
158   }
159 
160 }