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();