[Enhance] Show brokers' hostname (#5522)
Show brokers' hostname in table to keep the same with show proc for backends and frontends.
This commit is contained in:
@ -27,6 +27,7 @@ import org.apache.doris.common.io.Writable;
|
||||
import org.apache.doris.common.proc.BaseProcResult;
|
||||
import org.apache.doris.common.proc.ProcNodeInterface;
|
||||
import org.apache.doris.common.proc.ProcResult;
|
||||
import org.apache.doris.common.util.NetUtils;
|
||||
import org.apache.doris.common.util.TimeUtils;
|
||||
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
@ -48,10 +49,12 @@ import java.util.concurrent.locks.ReentrantLock;
|
||||
*/
|
||||
public class BrokerMgr {
|
||||
public static final ImmutableList<String> BROKER_PROC_NODE_TITLE_NAMES = new ImmutableList.Builder<String>()
|
||||
.add("Name").add("IP").add("Port").add("Alive")
|
||||
.add("Name").add("IP").add("HostName").add("Port").add("Alive")
|
||||
.add("LastStartTime").add("LastUpdateTime").add("ErrMsg")
|
||||
.build();
|
||||
|
||||
public static final int HOSTNAME_INDEX = 2;
|
||||
|
||||
// we need IP to find the co-location broker.
|
||||
// { BrokerName -> { IP -> [FsBroker] } }
|
||||
private final Map<String, ArrayListMultimap<String, FsBroker>> brokersMap = Maps.newHashMap();
|
||||
@ -341,6 +344,7 @@ public class BrokerMgr {
|
||||
List<String> row = Lists.newArrayList();
|
||||
row.add(brokerName);
|
||||
row.add(broker.ip);
|
||||
row.add(NetUtils.getHostnameByIp(broker.ip));
|
||||
row.add(String.valueOf(broker.port));
|
||||
row.add(String.valueOf(broker.isAlive));
|
||||
row.add(TimeUtils.longToTimeString(broker.lastStartTime));
|
||||
|
||||
@ -25,8 +25,8 @@ import org.apache.doris.common.AnalysisException;
|
||||
import org.apache.doris.common.Pair;
|
||||
import org.apache.doris.common.util.DebugUtil;
|
||||
import org.apache.doris.common.util.ListComparator;
|
||||
import org.apache.doris.common.util.NetUtils;
|
||||
import org.apache.doris.common.util.TimeUtils;
|
||||
import org.apache.doris.service.FrontendOptions;
|
||||
import org.apache.doris.system.Backend;
|
||||
import org.apache.doris.system.SystemInfoService;
|
||||
|
||||
@ -55,7 +55,6 @@ public class BackendsProcDir implements ProcDirInterface {
|
||||
.add("MaxDiskUsedPct").add("ErrMsg").add("Version").add("Status")
|
||||
.build();
|
||||
|
||||
public static final int IP_INDEX = 2;
|
||||
public static final int HOSTNAME_INDEX = 3;
|
||||
|
||||
private SystemInfoService clusterInfoService;
|
||||
@ -120,7 +119,7 @@ public class BackendsProcDir implements ProcDirInterface {
|
||||
backendInfo.add(backend.getOwnerClusterName());
|
||||
backendInfo.add(backend.getHost());
|
||||
if (Strings.isNullOrEmpty(clusterName)) {
|
||||
backendInfo.add(FrontendOptions.getHostnameByIp(backend.getHost()));
|
||||
backendInfo.add(NetUtils.getHostnameByIp(backend.getHost()));
|
||||
backendInfo.add(String.valueOf(backend.getHeartbeatPort()));
|
||||
backendInfo.add(String.valueOf(backend.getBePort()));
|
||||
backendInfo.add(String.valueOf(backend.getHttpPort()));
|
||||
|
||||
@ -20,8 +20,8 @@ package org.apache.doris.common.proc;
|
||||
import org.apache.doris.catalog.Catalog;
|
||||
import org.apache.doris.common.Config;
|
||||
import org.apache.doris.common.Pair;
|
||||
import org.apache.doris.common.util.NetUtils;
|
||||
import org.apache.doris.common.util.TimeUtils;
|
||||
import org.apache.doris.service.FrontendOptions;
|
||||
import org.apache.doris.system.Frontend;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
@ -95,7 +95,7 @@ public class FrontendsProcNode implements ProcNodeInterface {
|
||||
info.add(fe.getNodeName());
|
||||
info.add(fe.getHost());
|
||||
|
||||
info.add(FrontendOptions.getHostnameByIp(fe.getHost()));
|
||||
info.add(NetUtils.getHostnameByIp(fe.getHost()));
|
||||
info.add(Integer.toString(fe.getEditLogPort()));
|
||||
info.add(Integer.toString(Config.http_port));
|
||||
|
||||
|
||||
@ -17,14 +17,19 @@
|
||||
|
||||
package org.apache.doris.common.util;
|
||||
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.net.SocketException;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Enumeration;
|
||||
import java.util.List;
|
||||
|
||||
public class NetUtils {
|
||||
private static final Logger LOG = LogManager.getLogger(NetUtils.class);
|
||||
|
||||
// Target format is "host:port"
|
||||
public static InetSocketAddress createSocketAddr(String target) {
|
||||
@ -57,4 +62,16 @@ public class NetUtils {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static String getHostnameByIp(String ip) {
|
||||
String hostName;
|
||||
try {
|
||||
InetAddress address = InetAddress.getByName(ip);
|
||||
hostName = address.getHostName();
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.info("unknown host for {}", ip, e);
|
||||
hostName = "unknown";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,6 +72,7 @@ import org.apache.doris.backup.AbstractJob;
|
||||
import org.apache.doris.backup.BackupJob;
|
||||
import org.apache.doris.backup.Repository;
|
||||
import org.apache.doris.backup.RestoreJob;
|
||||
import org.apache.doris.catalog.BrokerMgr;
|
||||
import org.apache.doris.catalog.Catalog;
|
||||
import org.apache.doris.catalog.Column;
|
||||
import org.apache.doris.catalog.Database;
|
||||
@ -1326,10 +1327,13 @@ public class ShowExecutor {
|
||||
// Handle show brokers
|
||||
private void handleShowBroker() {
|
||||
ShowBrokerStmt showStmt = (ShowBrokerStmt) stmt;
|
||||
List<List<String>> rowSet = Catalog.getCurrentCatalog().getBrokerMgr().getBrokersInfo();
|
||||
List<List<String>> brokersInfo = Catalog.getCurrentCatalog().getBrokerMgr().getBrokersInfo();
|
||||
for (List<String> row : brokersInfo) {
|
||||
row.remove(BrokerMgr.HOSTNAME_INDEX);
|
||||
}
|
||||
|
||||
// Only success
|
||||
resultSet = new ShowResultSet(showStmt.getMetaData(), rowSet);
|
||||
resultSet = new ShowResultSet(showStmt.getMetaData(), brokersInfo);
|
||||
}
|
||||
|
||||
// Handle show resources
|
||||
|
||||
@ -19,7 +19,6 @@ package org.apache.doris.service;
|
||||
|
||||
import org.apache.doris.common.CIDR;
|
||||
import org.apache.doris.common.Config;
|
||||
import org.apache.doris.common.FeConstants;
|
||||
import org.apache.doris.common.util.NetUtils;
|
||||
|
||||
import com.google.common.base.Strings;
|
||||
@ -101,18 +100,6 @@ public class FrontendOptions {
|
||||
return localAddr.getHostName();
|
||||
}
|
||||
|
||||
public static String getHostnameByIp(String ip) {
|
||||
String hostName = FeConstants.null_string;
|
||||
try {
|
||||
InetAddress address = InetAddress.getByName(ip);
|
||||
hostName = address.getHostName();
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.info("unknown host for {}", ip, e);
|
||||
hostName = "unknown";
|
||||
}
|
||||
return hostName;
|
||||
}
|
||||
|
||||
private static void analyzePriorityCidrs() {
|
||||
String prior_cidrs = Config.priority_networks;
|
||||
if (Strings.isNullOrEmpty(prior_cidrs)) {
|
||||
|
||||
Reference in New Issue
Block a user