You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2023/03/17 12:28:50 UTC

[iotdb] branch performace_overview_dashboard created (now 6ec4eec592)

This is an automated email from the ASF dual-hosted git repository.

tanxinyu pushed a change to branch performace_overview_dashboard
in repository https://gitbox.apache.org/repos/asf/iotdb.git


      at 6ec4eec592 finish

This branch includes the following new commits:

     new 6ec4eec592 finish

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[iotdb] 01/01: finish

Posted by ta...@apache.org.
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 <ta...@apache.org>
AuthorDate: Fri Mar 17 20:28:23 2023 +0800

    finish
    
    Signed-off-by: OneSizeFitQuorum <ta...@apache.org>
---
 .../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);