You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by hu...@apache.org on 2022/11/07 06:22:50 UTC
[iotdb] 02/04: support TRACING ON/OFF
This is an automated email from the ASF dual-hosted git repository.
hui pushed a commit to branch QueryMetrics0.13
in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 5cfe9b8bcf4a34ebf44d93e393e16bfd07ea8032
Author: Minghui Liu <li...@foxmail.com>
AuthorDate: Mon Nov 7 13:56:53 2022 +0800
support TRACING ON/OFF
---
.../antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 7 ++++++-
.../java/org/apache/iotdb/db/qp/executor/PlanExecutor.java | 13 +++++++++++++
.../org/apache/iotdb/db/qp/logical/sys/TracingOperator.java | 2 +-
.../org/apache/iotdb/db/qp/physical/sys/TracingPlan.java | 2 +-
.../java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java | 7 +++++++
5 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
index 7996345033..70e0920cde 100644
--- a/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
+++ b/antlr/src/main/antlr4/org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4
@@ -60,7 +60,7 @@ dclStatement
;
utilityStatement
- : merge | fullMerge | flush | clearCache | settle
+ : merge | fullMerge | flush | clearCache | settle | tracing
| setSystemStatus | showVersion | showFlushInfo | showLockInfo | showQueryResource
| showQueryProcesslist | killQuery | grantWatermarkEmbedding | revokeWatermarkEmbedding
| loadConfiguration | loadTimeseries | loadFile | removeFile | unloadFile;
@@ -643,6 +643,11 @@ settle
: SETTLE (prefixPath|tsFilePath=STRING_LITERAL)
;
+// Tracing on/off
+tracing
+ : TRACING (ON | OFF)
+ ;
+
// Set System To ReadOnly/Writable
setSystemStatus
: SET SYSTEM TO (READONLY|WRITABLE)
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
index a6989293c5..3d6104045e 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/executor/PlanExecutor.java
@@ -132,11 +132,13 @@ import org.apache.iotdb.db.qp.physical.sys.ShowTTLPlan;
import org.apache.iotdb.db.qp.physical.sys.ShowTimeSeriesPlan;
import org.apache.iotdb.db.qp.physical.sys.StartTriggerPlan;
import org.apache.iotdb.db.qp.physical.sys.StopTriggerPlan;
+import org.apache.iotdb.db.qp.physical.sys.TracingPlan;
import org.apache.iotdb.db.qp.physical.sys.UnsetTemplatePlan;
import org.apache.iotdb.db.qp.utils.DateTimeUtils;
import org.apache.iotdb.db.query.context.QueryContext;
import org.apache.iotdb.db.query.control.FileReaderManager;
import org.apache.iotdb.db.query.control.QueryResourceManager;
+import org.apache.iotdb.db.query.control.QueryStatistics;
import org.apache.iotdb.db.query.control.QueryTimeManager;
import org.apache.iotdb.db.query.dataset.AlignByDeviceDataSet;
import org.apache.iotdb.db.query.dataset.ListDataSet;
@@ -427,12 +429,23 @@ public class PlanExecutor implements IPlanExecutor {
case PAUSE_ARCHIVING:
operatePauseArchiving((PauseArchivingPlan) plan);
return true;
+ case TRACING:
+ controlTracing((TracingPlan) plan);
+ return true;
default:
throw new UnsupportedOperationException(
String.format("operation %s is not supported", plan.getOperatorName()));
}
}
+ private void controlTracing(TracingPlan plan) {
+ if (plan.isTracingOn()) {
+ QueryStatistics.getInstance().enableTracing();
+ } else {
+ QueryStatistics.getInstance().disableTracing();
+ }
+ }
+
private boolean createTemplate(CreateTemplatePlan createTemplatePlan)
throws QueryProcessException {
try {
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/TracingOperator.java b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/TracingOperator.java
index fcc3f0f3c8..82e18f80a1 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/TracingOperator.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/logical/sys/TracingOperator.java
@@ -26,7 +26,7 @@ import org.apache.iotdb.db.qp.strategy.PhysicalGenerator;
public class TracingOperator extends Operator {
- private boolean isTracingOn;
+ private final boolean isTracingOn;
public TracingOperator(int tokenIntType, boolean isTracingOn) {
super(tokenIntType);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/TracingPlan.java b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/TracingPlan.java
index 0e0f9fc1fe..b51b13debe 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/TracingPlan.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/physical/sys/TracingPlan.java
@@ -27,7 +27,7 @@ import java.util.List;
public class TracingPlan extends PhysicalPlan {
- private boolean isTracingOn;
+ private final boolean isTracingOn;
public TracingPlan(boolean isTracingOn) {
super(OperatorType.TRACING);
diff --git a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
index bae92be936..babfa1a8be 100644
--- a/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
+++ b/server/src/main/java/org/apache/iotdb/db/qp/sql/IoTDBSqlVisitor.java
@@ -2127,6 +2127,13 @@ public class IoTDBSqlVisitor extends IoTDBSqlParserBaseVisitor<Operator> {
return settleOperator;
}
+ // Tracing on/off
+
+ @Override
+ public Operator visitTracing(IoTDBSqlParser.TracingContext ctx) {
+ return new TracingOperator(SQLConstant.TOK_TRACING, ctx.ON() != null);
+ }
+
// Set System To ReadOnly/Writable
@Override