/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.hbase.master; import org.apache.hadoop.hbase.ServerName; import org.apache.hadoop.hbase.master.HMaster; import org.apache.hadoop.hbase.master.MetricsMasterWrapper; import org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher; /** * Impl for exposing HMaster Information through JMX */ public class MetricsMasterWrapperImpl implements MetricsMasterWrapper { private final HMaster master; public MetricsMasterWrapperImpl(final HMaster master) { this.master = master; } @Override public double getAverageLoad() { return master.getAverageLoad(); } @Override public String getClusterId() { return master.getClusterId(); } @Override public String getZookeeperQuorum() { ZooKeeperWatcher zk = master.getZooKeeperWatcher(); if (zk == null) { return ""; } return zk.getQuorum(); } @Override public String[] getCoprocessors() { return master.getCoprocessors(); } @Override public long getStartTime() { return master.getMasterStartTime(); } @Override public long getActiveTime() { return master.getMasterActiveTime(); } @Override public int getRegionServers() { ServerManager serverManager = this.master.getServerManager(); if (serverManager == null) { return 0; } return serverManager.getOnlineServers().size(); } @Override public int getDeadRegionServers() { ServerManager serverManager = this.master.getServerManager(); if (serverManager == null) { return 0; } return serverManager.getDeadServers().size(); } @Override public String getServerName() { ServerName serverName = master.getServerName(); if (serverName == null) { return ""; } return serverName.getServerName(); } @Override public boolean getIsActiveMaster() { return master.isActiveMaster(); } }