Skip to content

Commit e6bd879

Browse files
authored
[IOTDB-4143] Fix the statistic of count of wal files. (apache#7039)
1 parent e9e6505 commit e6bd879

File tree

1 file changed

+46
-19
lines changed
  • server/src/main/java/org/apache/iotdb/db/service/metrics/predefined

1 file changed

+46
-19
lines changed

server/src/main/java/org/apache/iotdb/db/service/metrics/predefined/FileMetrics.java

Lines changed: 46 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,20 @@
3232
import org.apache.iotdb.metrics.predefined.PredefinedMetric;
3333
import org.apache.iotdb.metrics.utils.MetricLevel;
3434

35+
import org.slf4j.Logger;
36+
import org.slf4j.LoggerFactory;
37+
3538
import java.io.File;
39+
import java.io.UncheckedIOException;
3640
import java.util.concurrent.Executors;
3741
import java.util.concurrent.ScheduledExecutorService;
3842
import java.util.concurrent.TimeUnit;
3943
import java.util.stream.Stream;
4044

4145
public class FileMetrics implements IMetricSet {
46+
private static final Logger logger = LoggerFactory.getLogger(FileMetrics.class);
47+
private final String[] walDirs = IoTDBDescriptor.getInstance().getConfig().getWalDirs();
48+
private final String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getDataDirs();
4249
private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
4350
private long walFileTotalSize = 0L;
4451
private long walFileTotalCount = 0L;
@@ -138,18 +145,30 @@ private void collect() {
138145
.mapToLong(
139146
dir -> {
140147
File walFolder = new File(dir);
141-
File[] walNodeFolders = walFolder.listFiles(File::isDirectory);
142-
long result = 0L;
143-
if (null != walNodeFolders) {
144-
for (File walNodeFolder : walNodeFolders) {
145-
if (walNodeFolder.exists() && walNodeFolder.isDirectory()) {
146-
result +=
147-
org.apache.commons.io.FileUtils.listFiles(walNodeFolder, null, true)
148-
.size();
148+
if (walFolder.exists()) {
149+
File[] walNodeFolders = walFolder.listFiles(File::isDirectory);
150+
long result = 0L;
151+
if (null != walNodeFolders) {
152+
for (File walNodeFolder : walNodeFolders) {
153+
if (walNodeFolder.exists() && walNodeFolder.isDirectory()) {
154+
try {
155+
result +=
156+
org.apache.commons.io.FileUtils.listFiles(walFolder, null, true)
157+
.size();
158+
} catch (UncheckedIOException exception) {
159+
// do nothing
160+
logger.debug(
161+
"Failed when count wal folder {}: ",
162+
walNodeFolder.getName(),
163+
exception);
164+
}
165+
}
149166
}
150167
}
168+
return result;
169+
} else {
170+
return 0L;
151171
}
152-
return result;
153172
})
154173
.sum();
155174
sequenceFileTotalCount =
@@ -159,12 +178,16 @@ private void collect() {
159178
dir += File.separator + IoTDBConstant.SEQUENCE_FLODER_NAME;
160179
File folder = new File(dir);
161180
if (folder.exists()) {
162-
return org.apache.commons.io.FileUtils.listFiles(
163-
new File(dir), new String[] {"tsfile"}, true)
164-
.size();
165-
} else {
166-
return 0L;
181+
try {
182+
return org.apache.commons.io.FileUtils.listFiles(
183+
new File(dir), new String[] {"tsfile"}, true)
184+
.size();
185+
} catch (UncheckedIOException exception) {
186+
// do nothing
187+
logger.debug("Failed when count sequence tsfile: ", exception);
188+
}
167189
}
190+
return 0L;
168191
})
169192
.sum();
170193
unsequenceFileTotalCount =
@@ -174,12 +197,16 @@ private void collect() {
174197
dir += File.separator + IoTDBConstant.UNSEQUENCE_FLODER_NAME;
175198
File folder = new File(dir);
176199
if (folder.exists()) {
177-
return org.apache.commons.io.FileUtils.listFiles(
178-
new File(dir), new String[] {"tsfile"}, true)
179-
.size();
180-
} else {
181-
return 0L;
200+
try {
201+
return org.apache.commons.io.FileUtils.listFiles(
202+
new File(dir), new String[] {"tsfile"}, true)
203+
.size();
204+
} catch (UncheckedIOException exception) {
205+
// do nothing
206+
logger.debug("Failed when count unsequence tsfile: ", exception);
207+
}
182208
}
209+
return 0L;
183210
})
184211
.sum();
185212
}

0 commit comments

Comments
 (0)