You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2022/06/01 15:30:15 UTC
[incubator-doris] branch master updated: [feature] Support show proc BackendLoadStatistic (#9618)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris.git
The following commit(s) were added to refs/heads/master by this push:
new 2fc2113b05 [feature] Support show proc BackendLoadStatistic (#9618)
2fc2113b05 is described below
commit 2fc2113b0597c08cd486fbefd10676fd99c58021
Author: ccoffline <45...@users.noreply.github.com>
AuthorDate: Wed Jun 1 23:30:10 2022 +0800
[feature] Support show proc BackendLoadStatistic (#9618)
The proc info method already exists in `ClusterLoadStatistic.getBackendStatistic`, I'll add a proc node to show it.
---
.../apache/doris/clone/ClusterLoadStatistic.java | 3 ++
.../common/proc/BackendLoadStatisticProcNode.java | 50 ++++++++++++++++++++++
.../common/proc/ClusterLoadStatisticProcDir.java | 8 ++--
3 files changed, 57 insertions(+), 4 deletions(-)
diff --git a/fe/fe-core/src/main/java/org/apache/doris/clone/ClusterLoadStatistic.java b/fe/fe-core/src/main/java/org/apache/doris/clone/ClusterLoadStatistic.java
index 8d9c6ecd2e..a6fc86d54c 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/clone/ClusterLoadStatistic.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/clone/ClusterLoadStatistic.java
@@ -280,10 +280,13 @@ public class ClusterLoadStatistic {
List<String> pathStat = Lists.newArrayList();
pathStat.add(pathStatistic.getPath());
pathStat.add(String.valueOf(pathStatistic.getPathHash()));
+ pathStat.add(pathStatistic.getStorageMedium().name());
pathStat.add(String.valueOf(pathStatistic.getUsedCapacityB()));
pathStat.add(String.valueOf(pathStatistic.getCapacityB()));
pathStat.add(String.valueOf(DebugUtil.DECIMAL_FORMAT_SCALE_3.format(pathStatistic.getUsedCapacityB() * 100
/ (double) pathStatistic.getCapacityB())));
+ pathStat.add(pathStatistic.getClazz().name());
+ pathStat.add(pathStatistic.getDiskState().name());
statistics.add(pathStat);
}
break;
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendLoadStatisticProcNode.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendLoadStatisticProcNode.java
new file mode 100644
index 0000000000..cd6a4691ab
--- /dev/null
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/BackendLoadStatisticProcNode.java
@@ -0,0 +1,50 @@
+// 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.doris.common.proc;
+
+import org.apache.doris.clone.ClusterLoadStatistic;
+import org.apache.doris.common.AnalysisException;
+
+import com.google.common.collect.ImmutableList;
+
+
+public class BackendLoadStatisticProcNode implements ProcNodeInterface {
+ public static final ImmutableList<String> TITLE_NAMES = new ImmutableList.Builder<String>()
+ .add("RootPath").add("PathHash").add("StorageMedium")
+ .add("DataUsedCapacity").add("TotalCapacity").add("TotalUsedPct")
+ .add("Class").add("State")
+ .build();
+
+ private final ClusterLoadStatistic statistic;
+ private final long beId;
+
+ public BackendLoadStatisticProcNode(ClusterLoadStatistic statistic, long beId) {
+ this.statistic = statistic;
+ this.beId = beId;
+ }
+
+ @Override
+ public ProcResult fetchResult() throws AnalysisException {
+ BaseProcResult result = new BaseProcResult();
+ result.setNames(TITLE_NAMES);
+ if (statistic != null) {
+ result.setRows(statistic.getBackendStatistic(beId));
+ }
+ return result;
+ }
+}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/common/proc/ClusterLoadStatisticProcDir.java b/fe/fe-core/src/main/java/org/apache/doris/common/proc/ClusterLoadStatisticProcDir.java
index 3e40e92b51..2d2842bdb0 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/common/proc/ClusterLoadStatisticProcDir.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/common/proc/ClusterLoadStatisticProcDir.java
@@ -38,7 +38,6 @@ public class ClusterLoadStatisticProcDir implements ProcDirInterface {
.add("Class")
.build();
- private Table<String, Tag, ClusterLoadStatistic> statMap;
private Tag tag;
private TStorageMedium medium;
@@ -52,8 +51,7 @@ public class ClusterLoadStatisticProcDir implements ProcDirInterface {
BaseProcResult result = new BaseProcResult();
result.setNames(TITLE_NAMES);
- statMap = Catalog.getCurrentCatalog().getTabletScheduler().getStatisticMap();
- Map<String, ClusterLoadStatistic> map = statMap.column(tag);
+ Map<String, ClusterLoadStatistic> map = Catalog.getCurrentCatalog().getTabletScheduler().getStatisticMap().column(tag);
map.values().forEach(t -> {
List<List<String>> statistics = t.getClusterStatistic(medium);
@@ -81,7 +79,9 @@ public class ClusterLoadStatisticProcDir implements ProcDirInterface {
if (be == null) {
throw new AnalysisException("backend " + beId + " does not exist");
}
- return new BackendProcNode(be);
+
+ Map<String, ClusterLoadStatistic> map = Catalog.getCurrentCatalog().getTabletScheduler().getStatisticMap().column(tag);
+ return new BackendLoadStatisticProcNode(map.get(be.getOwnerClusterName()), beId);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org