[chore](show replica) show replica print path (#30402)

This commit is contained in:
yujun
2024-02-01 09:48:32 +08:00
committed by yiguolei
parent 1aa7a914e1
commit 1f754c55d5
31 changed files with 332 additions and 323 deletions

View File

@ -33,7 +33,7 @@ import java.util.Map;
public class BackendProcNode implements ProcNodeInterface {
public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>()
.add("RootPath").add("DataUsedCapacity").add("OtherUsedCapacity").add("AvailCapacity")
.add("TotalCapacity").add("TotalUsedPct").add("State").add("PathHash")
.add("TotalCapacity").add("TotalUsedPct").add("State").add("PathHash").add("StorageMedium")
.build();
private Backend backend;
@ -53,17 +53,19 @@ public class BackendProcNode implements ProcNodeInterface {
List<String> info = Lists.newArrayList();
info.add(entry.getKey());
DiskInfo disk = entry.getValue();
// data used
long dataUsedB = entry.getValue().getDataUsedCapacityB();
long dataUsedB = disk.getDataUsedCapacityB();
Pair<Double, String> dataUsedUnitPair = DebugUtil.getByteUint(dataUsedB);
info.add(DebugUtil.DECIMAL_FORMAT_SCALE_3.format(dataUsedUnitPair.first) + " "
+ dataUsedUnitPair.second);
// avail
long availB = entry.getValue().getAvailableCapacityB();
long availB = disk.getAvailableCapacityB();
Pair<Double, String> availUnitPair = DebugUtil.getByteUint(availB);
// total
long totalB = entry.getValue().getTotalCapacityB();
long totalB = disk.getTotalCapacityB();
Pair<Double, String> totalUnitPair = DebugUtil.getByteUint(totalB);
// other
long otherB = totalB - availB - dataUsedB;
@ -82,8 +84,9 @@ public class BackendProcNode implements ProcNodeInterface {
}
info.add(String.format("%.2f", used) + " %");
info.add(entry.getValue().getState().name());
info.add(String.valueOf(entry.getValue().getPathHash()));
info.add(disk.getState().name());
info.add(String.valueOf(disk.getPathHash()));
info.add(disk.getStorageMedium().name());
result.addRow(info);
}

View File

@ -17,6 +17,7 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.DiskInfo;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.OlapTable;
import org.apache.doris.catalog.Replica;
@ -43,7 +44,8 @@ public class ReplicasProcNode implements ProcNodeInterface {
.add("BackendId").add("Version").add("LstSuccessVersion").add("LstFailedVersion").add("LstFailedTime")
.add("SchemaHash").add("LocalDataSize").add("RemoteDataSize").add("RowCount").add("State").add("IsBad")
.add("IsUserDrop")
.add("VersionCount").add("PathHash").add("MetaUrl").add("CompactionStatus").add("CooldownReplicaId")
.add("VersionCount").add("PathHash").add("Path")
.add("MetaUrl").add("CompactionStatus").add("CooldownReplicaId")
.add("CooldownMetaId").add("QueryHits").build();
private long tabletId;
@ -84,6 +86,16 @@ public class ReplicasProcNode implements ProcNodeInterface {
String metaUrl = String.format("http://" + hostPort + "/api/meta/header/%d", tabletId);
String compactionUrl = String.format("http://" + hostPort + "/api/compaction/show?tablet_id=%d", tabletId);
String path = "";
if (be != null) {
DiskInfo diskInfo = be.getDisks().values().stream()
.filter(disk -> disk.getPathHash() == replica.getPathHash())
.findFirst().orElse(null);
if (diskInfo != null) {
path = diskInfo.getRootPath();
}
}
String cooldownMetaId = "";
if (replica.getCooldownMetaId() != null) {
cooldownMetaId = replica.getCooldownMetaId().toString();
@ -107,6 +119,7 @@ public class ReplicasProcNode implements ProcNodeInterface {
String.valueOf(replica.isUserDrop()),
String.valueOf(replica.getVersionCount()),
String.valueOf(replica.getPathHash()),
path,
metaUrl,
compactionUrl,
String.valueOf(tablet.getCooldownConf().first),

View File

@ -17,6 +17,7 @@
package org.apache.doris.common.proc;
import org.apache.doris.catalog.DiskInfo;
import org.apache.doris.catalog.Env;
import org.apache.doris.catalog.MaterializedIndex;
import org.apache.doris.catalog.Replica;
@ -51,7 +52,8 @@ public class TabletsProcDir implements ProcDirInterface {
.add("LstSuccessVersion").add("LstFailedVersion").add("LstFailedTime")
.add("LocalDataSize").add("RemoteDataSize").add("RowCount").add("State")
.add("LstConsistencyCheckTime").add("CheckVersion")
.add("VersionCount").add("QueryHits").add("PathHash").add("MetaUrl").add("CompactionStatus")
.add("VersionCount").add("QueryHits").add("PathHash").add("Path")
.add("MetaUrl").add("CompactionStatus")
.add("CooldownReplicaId").add("CooldownMetaId").build();
private Table table;
@ -68,6 +70,12 @@ public class TabletsProcDir implements ProcDirInterface {
ImmutableMap<Long, Backend> backendMap = Env.getCurrentSystemInfo().getIdToBackend();
List<List<Comparable>> tabletInfos = new ArrayList<List<Comparable>>();
Map<Long, String> pathHashToRoot = new HashMap<>();
for (Backend be : backendMap.values()) {
for (DiskInfo diskInfo : be.getDisks().values()) {
pathHashToRoot.put(diskInfo.getPathHash(), diskInfo.getRootPath());
}
}
table.readLock();
try {
Map<Long, Long> replicaIdToQueryHits = new HashMap<>();
@ -80,6 +88,7 @@ public class TabletsProcDir implements ProcDirInterface {
}
replicaIdToQueryHits = QueryStatsUtil.getMergedReplicasStats(replicaIds);
}
// get infos
for (Tablet tablet : index.getTablets()) {
long tabletId = tablet.getId();
@ -107,6 +116,7 @@ public class TabletsProcDir implements ProcDirInterface {
tabletInfo.add(-1); // version count
tabletInfo.add(0L); // query hits
tabletInfo.add(-1); // path hash
tabletInfo.add(FeConstants.null_string); // path
tabletInfo.add(FeConstants.null_string); // meta url
tabletInfo.add(FeConstants.null_string); // compaction status
tabletInfo.add(-1); // cooldown replica id
@ -140,6 +150,7 @@ public class TabletsProcDir implements ProcDirInterface {
tabletInfo.add(replica.getVersionCount());
tabletInfo.add(replicaIdToQueryHits.getOrDefault(replica.getId(), 0L));
tabletInfo.add(replica.getPathHash());
tabletInfo.add(pathHashToRoot.getOrDefault(replica.getPathHash(), ""));
Backend be = backendMap.get(replica.getBackendId());
String host = (be == null ? Backend.DUMMY_IP : be.getHost());
int port = (be == null ? 0 : be.getHttpPort());