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 <[email protected]> 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
