add metric for test

Signed-off-by: Weihao Li <18110526956@163.com>
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
index 16c31d5..d00bd99 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/common/MPPQueryContext.java
@@ -155,6 +155,9 @@
 
   private boolean reservingMemoryForSchemaTree = false;
 
+  private long frontEndMemoryBytes = 0;
+  private long peakFrontEndMemoryBytes = 0;
+
   private boolean resultSetColumnMemoryTrackingEnabled = false;
   private boolean alignByDeviceForResultSetColumnTracking = false;
   private long seriesLimitForResultSetColumnTracking = 0;
@@ -271,6 +274,7 @@
       return;
     }
     this.memoryReservationManager.releaseMemoryCumulatively(reservedMemoryCostForSchemaTree);
+    frontEndMemoryBytes -= reservedMemoryCostForSchemaTree;
     reservedMemoryCostForSchemaTree = 0;
   }
 
@@ -653,6 +657,8 @@
   public void reserveMemoryForFrontEnd(final long bytes) {
     try {
       this.memoryReservationManager.reserveMemoryCumulatively(bytes);
+      frontEndMemoryBytes += bytes;
+      peakFrontEndMemoryBytes = Math.max(peakFrontEndMemoryBytes, frontEndMemoryBytes);
     } catch (MemoryNotEnoughException e) {
       if (reservingMemoryForSchemaTree) {
         throw e;
@@ -674,10 +680,17 @@
 
   public void releaseAllMemoryReservedForFrontEnd() {
     this.memoryReservationManager.releaseAllReservedMemory();
+    frontEndMemoryBytes = 0;
+    reservedMemoryCostForSchemaTree = 0;
   }
 
   public void releaseMemoryReservedForFrontEnd(final long bytes) {
     this.memoryReservationManager.releaseMemoryCumulatively(bytes);
+    frontEndMemoryBytes -= bytes;
+  }
+
+  public long getPeakFrontEndMemoryBytes() {
+    return peakFrontEndMemoryBytes;
   }
 
   public void initResultSetColumnMemoryTracking(
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java
index e4e4d40..293a37e 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/statistics/FragmentInstanceStatisticsDrawer.java
@@ -84,6 +84,11 @@
             context.getDistributionPlanCost() * NS_TO_MS_FACTOR));
     addLine(
         planHeader,
+        0,
+        String.format(
+            "Coordinator FE Peak Memory: %d bytes", context.getPeakFrontEndMemoryBytes()));
+    addLine(
+        planHeader,
         1,
         String.format(
             "Disk IO Size: %d bytes", context.getDiskIOSizeForDeviceEntryDuringDistributionPlan()));