This is an automated email from the ASF dual-hosted git repository. tanxinyu pushed a commit to branch performace_overview_dashboard in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 6ec4eec592ade1c627de497c1142d179e86cb9af Author: OneSizeFitQuorum <[email protected]> AuthorDate: Fri Mar 17 20:28:23 2023 +0800 finish Signed-off-by: OneSizeFitQuorum <[email protected]> --- .../ratis/ApplicationStateMachineProxy.java | 23 +++++++++++++--------- .../iotdb/consensus/ratis/RatisConsensus.java | 4 ++-- .../org/apache/iotdb/consensus/ratis/Utils.java | 4 ++-- .../ratis/metrics/IoTDBMetricRegistry.java | 2 +- .../ratis/metrics/RatisMetricsManager.java | 19 ++++++++++-------- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java index b256079623..aacb0743be 100644 --- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java +++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/ApplicationStateMachineProxy.java @@ -18,6 +18,7 @@ */ package org.apache.iotdb.consensus.ratis; +import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.service.metric.enums.Metric; @@ -56,12 +57,13 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; public class ApplicationStateMachineProxy extends BaseStateMachine { + private final Logger logger = LoggerFactory.getLogger(ApplicationStateMachineProxy.class); private final IStateMachine applicationStateMachine; private final IStateMachine.RetryPolicy retryPolicy; private final SnapshotStorage snapshotStorage; private final RaftGroupId groupId; - private final String consensusGroupType; + private final TConsensusGroupType consensusGroupType; public ApplicationStateMachineProxy(IStateMachine stateMachine, RaftGroupId id) { applicationStateMachine = stateMachine; @@ -173,14 +175,17 @@ public class ApplicationStateMachineProxy extends BaseStateMachine { } } while (shouldRetry); if (isLeader) { - MetricService.getInstance() - .timer( - System.nanoTime() - writeToStateMachineStartTime, - TimeUnit.NANOSECONDS, - Metric.PERFORMANCE_OVERVIEW_STORAGE_DETAIL.toString(), - MetricLevel.IMPORTANT, - Tag.STAGE.toString(), - PerformanceOverviewMetrics.ENGINE); + // only record time cost for data region in Performance Overview Dashboard + if (consensusGroupType == TConsensusGroupType.DataRegion) { + MetricService.getInstance() + .timer( + System.nanoTime() - writeToStateMachineStartTime, + TimeUnit.NANOSECONDS, + Metric.PERFORMANCE_OVERVIEW_STORAGE_DETAIL.toString(), + MetricLevel.IMPORTANT, + Tag.STAGE.toString(), + PerformanceOverviewMetrics.ENGINE); + } // statistic the time of write stateMachine RatisMetricsManager.getInstance() .recordWriteStateMachineCost( diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java index 38242b56d4..7cac28eb17 100644 --- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java +++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/RatisConsensus.java @@ -19,6 +19,7 @@ package org.apache.iotdb.consensus.ratis; +import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TSStatus; import org.apache.iotdb.commons.client.ClientManager; @@ -125,8 +126,7 @@ class RatisConsensus implements IConsensus { private final ConcurrentHashMap<File, MemorizedFileSizeCalc> calcMap = new ConcurrentHashMap<>(); private final RatisMetricSet ratisMetricSet; - - private String consensusGroupType = null; + private TConsensusGroupType consensusGroupType = null; public RatisConsensus(ConsensusConfig config, IStateMachine.Registry registry) throws IOException { diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/Utils.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/Utils.java index 7d7954a530..639d7e2c15 100644 --- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/Utils.java +++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/Utils.java @@ -177,7 +177,7 @@ public class Utils { return TermIndex.valueOf(Long.parseLong(items[0]), Long.parseLong(items[1])); } - public static String getConsensusGroupTypeFromPrefix(String prefix) { + public static TConsensusGroupType getConsensusGroupTypeFromPrefix(String prefix) { TConsensusGroupType consensusGroupType; if (prefix.contains(DATA_REGION_GROUP)) { consensusGroupType = TConsensusGroupType.DataRegion; @@ -186,7 +186,7 @@ public class Utils { } else { consensusGroupType = TConsensusGroupType.ConfigRegion; } - return consensusGroupType.toString(); + return consensusGroupType; } public static void initRatisConfig(RaftProperties properties, RatisConfig config) { diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/IoTDBMetricRegistry.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/IoTDBMetricRegistry.java index 7846c61b89..065809b0ea 100644 --- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/IoTDBMetricRegistry.java +++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/IoTDBMetricRegistry.java @@ -94,7 +94,7 @@ public class IoTDBMetricRegistry implements RatisMetricRegistry { this.metricService = service; prefix = MetricRegistry.name( - Utils.getConsensusGroupTypeFromPrefix(info.getPrefix()), + Utils.getConsensusGroupTypeFromPrefix(info.getPrefix()).toString(), info.getApplicationName(), info.getMetricsComponentName()); } diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/RatisMetricsManager.java b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/RatisMetricsManager.java index b7d11a732f..6378d62338 100644 --- a/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/RatisMetricsManager.java +++ b/consensus/src/main/java/org/apache/iotdb/consensus/ratis/metrics/RatisMetricsManager.java @@ -18,6 +18,7 @@ */ package org.apache.iotdb.consensus.ratis.metrics; +import org.apache.iotdb.common.rpc.thrift.TConsensusGroupType; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.commons.service.metric.enums.Metric; import org.apache.iotdb.commons.service.metric.enums.Tag; @@ -28,43 +29,45 @@ import java.util.concurrent.TimeUnit; public class RatisMetricsManager { private final MetricService metricService = MetricService.getInstance(); /** Record the time cost in write locally stage. */ - public void recordWriteLocallyCost(long costTimeInNanos, String consensusGroupType) { + public void recordWriteLocallyCost(long costTimeInNanos, TConsensusGroupType consensusGroupType) { metricService.timer( costTimeInNanos, TimeUnit.NANOSECONDS, - consensusGroupType + "_" + Metric.RATIS_CONSENSUS_WRITE, + consensusGroupType.toString() + "_" + Metric.RATIS_CONSENSUS_WRITE, MetricLevel.IMPORTANT, Tag.STAGE.toString(), RatisMetricSet.WRITE_LOCALLY); } /** Record the time cost in write remotely stage. */ - public void recordWriteRemotelyCost(long costTimeInNanos, String consensusGroupType) { + public void recordWriteRemotelyCost( + long costTimeInNanos, TConsensusGroupType consensusGroupType) { metricService.timer( costTimeInNanos, TimeUnit.NANOSECONDS, - consensusGroupType + "_" + Metric.RATIS_CONSENSUS_WRITE, + consensusGroupType.toString() + "_" + Metric.RATIS_CONSENSUS_WRITE, MetricLevel.IMPORTANT, Tag.STAGE.toString(), RatisMetricSet.WRITE_REMOTELY); } /** Record the time cost in submit read request stage. */ - public void recordReadRequestCost(long costTimeInNanos, String consensusGroupType) { + public void recordReadRequestCost(long costTimeInNanos, TConsensusGroupType consensusGroupType) { metricService.timer( costTimeInNanos, TimeUnit.NANOSECONDS, - consensusGroupType + "_" + Metric.RATIS_CONSENSUS_READ, + consensusGroupType.toString() + "_" + Metric.RATIS_CONSENSUS_READ, MetricLevel.IMPORTANT, Tag.STAGE.toString(), RatisMetricSet.SUBMIT_READ_REQUEST); } /** Record the time cost in write state machine stage. */ - public void recordWriteStateMachineCost(long costTimeInNanos, String consensusGroupType) { + public void recordWriteStateMachineCost( + long costTimeInNanos, TConsensusGroupType consensusGroupType) { metricService.timer( costTimeInNanos, TimeUnit.NANOSECONDS, - consensusGroupType + "_" + Metric.RATIS_CONSENSUS_WRITE, + consensusGroupType.toString() + "_" + Metric.RATIS_CONSENSUS_WRITE, MetricLevel.IMPORTANT, Tag.STAGE.toString(), RatisMetricSet.WRITE_STATE_MACHINE);
