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 <45881148+ccoffl...@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-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org