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

liurui pushed a commit to branch file_size_monitor
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git


The following commit(s) were added to refs/heads/file_size_monitor by this push:
     new bafc2ec  register file size stats series with FileNodeManager
     new bdc5968  Merge branch 'file_size_monitor' of 
github.com:apache/incubator-iotdb into file_size_monitor
bafc2ec is described below

commit bafc2ecdfb519872e672bff67b2529912d973957
Author: liuruiyiyang <[email protected]>
AuthorDate: Sat Mar 9 17:17:16 2019 +0800

    register file size stats series with FileNodeManager
---
 iotdb/iotdb/conf/iotdb-engine.properties           |  2 +-
 .../org/apache/iotdb/db/monitor/StatMonitor.java   |  3 +--
 .../iotdb/db/monitor/collector/FileSize.java       | 29 ++++++++++++++++++----
 3 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/iotdb/iotdb/conf/iotdb-engine.properties 
b/iotdb/iotdb/conf/iotdb-engine.properties
index fe6d154..2ac6221 100644
--- a/iotdb/iotdb/conf/iotdb-engine.properties
+++ b/iotdb/iotdb/conf/iotdb-engine.properties
@@ -170,7 +170,7 @@ concurrent_flush_thread=0
 # IoTDB just keeps statistics info within stat_monitor_retain_interval_sec 
seconds before current time.
 # Note: IoTDB requires stat_monitor_detect_freq_sec >= 600s and 
stat_monitor_retain_interval_sec >= 600s.
 # The monitor, which writes statistics info to IoTDB periodically, is disabled 
by default.
-enable_stat_monitor=false
+enable_stat_monitor=true
 
 # The period that StatMonitor stores statistics info
 back_loop_period_sec=5
diff --git a/iotdb/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java 
b/iotdb/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
index ab6207d..6008f41 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/monitor/StatMonitor.java
@@ -336,6 +336,7 @@ public class StatMonitor implements IService {
   }
 
   class StatBackLoop implements Runnable {
+    FileSize fileSize = FileSize.getInstance();
 
     @Override
     public void run() {
@@ -362,8 +363,6 @@ public class StatMonitor implements IService {
           }
         }
         Map<String, TSRecord> tsRecordHashMap = gatherStatistics();
-        FileSize fileSize = FileSize.getInstance();
-        tsRecordHashMap.putAll(fileSize.getAllStatisticsValue());
         insert(tsRecordHashMap);
         numBackLoop.incrementAndGet();
       } catch (Exception e) {
diff --git 
a/iotdb/src/main/java/org/apache/iotdb/db/monitor/collector/FileSize.java 
b/iotdb/src/main/java/org/apache/iotdb/db/monitor/collector/FileSize.java
index ccf16f2..eb6dfa0 100644
--- a/iotdb/src/main/java/org/apache/iotdb/db/monitor/collector/FileSize.java
+++ b/iotdb/src/main/java/org/apache/iotdb/db/monitor/collector/FileSize.java
@@ -21,6 +21,7 @@ package org.apache.iotdb.db.monitor.collector;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.EnumMap;
 import java.util.HashMap;
 import java.util.List;
@@ -29,10 +30,17 @@ import java.util.concurrent.atomic.AtomicLong;
 import org.apache.commons.io.FileUtils;
 import org.apache.iotdb.db.conf.IoTDBConfig;
 import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.db.engine.filenode.FileNodeManager;
+import org.apache.iotdb.db.exception.FileNodeManagerException;
 import org.apache.iotdb.db.monitor.IStatistic;
 import org.apache.iotdb.db.monitor.MonitorConstants;
 import org.apache.iotdb.db.monitor.MonitorConstants.FileSizeConstants;
 import org.apache.iotdb.db.monitor.StatMonitor;
+import org.apache.iotdb.tsfile.common.conf.TSFileConfig;
+import org.apache.iotdb.tsfile.file.metadata.enums.CompressionType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
+import org.apache.iotdb.tsfile.file.metadata.enums.TSEncoding;
+import org.apache.iotdb.tsfile.read.common.Path;
 import org.apache.iotdb.tsfile.write.record.TSRecord;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -46,6 +54,7 @@ public class FileSize implements IStatistic {
   private static final Logger LOGGER = LoggerFactory.getLogger(FileSize.class);
   private static final long ABNORMAL_VALUE = -1L;
   private static final long INIT_VALUE_IF_FILE_NOT_EXIST = 0L;
+  private FileNodeManager fileNodeManager;
 
   @Override
   public Map<String, TSRecord> getAllStatisticsValue() {
@@ -61,11 +70,20 @@ public class FileSize implements IStatistic {
   @Override
   public void registerStatMetadata() {
     Map<String, String> hashMap = new HashMap<>();
-    for (FileSizeConstants kind : MonitorConstants.FileSizeConstants.values()) 
{
-      hashMap
-          .put(MonitorConstants.FILE_SIZE_STORAGE_GROUP_NAME
-              + MonitorConstants.MONITOR_PATH_SEPARATOR
-              + kind.name(), MonitorConstants.DATA_TYPE_INT64);
+    for (FileSizeConstants kind : FileSizeConstants.values()) {
+      hashMap.put(MonitorConstants.FILE_SIZE_STORAGE_GROUP_NAME
+          + MonitorConstants.MONITOR_PATH_SEPARATOR
+          + kind.name(), MonitorConstants.DATA_TYPE_INT64);
+      Path path = new Path(MonitorConstants.FILE_SIZE_STORAGE_GROUP_NAME
+          + MonitorConstants.MONITOR_PATH_SEPARATOR
+          + kind.name());
+      try {
+        fileNodeManager.addTimeSeries(path, 
TSDataType.valueOf(MonitorConstants.DATA_TYPE_INT64),
+            TSEncoding.valueOf("RLE"), 
CompressionType.valueOf(TSFileConfig.compressor),
+            Collections.emptyMap());
+      } catch (FileNodeManagerException e) {
+        LOGGER.error("Register File Size Stats into fileNodeManager Failed.", 
e);
+      }
     }
     StatMonitor.getInstance().registerStatStorageGroup(hashMap);
   }
@@ -97,6 +115,7 @@ public class FileSize implements IStatistic {
   }
 
   private FileSize() {
+    fileNodeManager = FileNodeManager.getInstance();
     if (config.isEnableStatMonitor()) {
       StatMonitor statMonitor = StatMonitor.getInstance();
       registerStatMetadata();

Reply via email to