3232import org .apache .iotdb .metrics .predefined .PredefinedMetric ;
3333import org .apache .iotdb .metrics .utils .MetricLevel ;
3434
35+ import org .slf4j .Logger ;
36+ import org .slf4j .LoggerFactory ;
37+
3538import java .io .File ;
39+ import java .io .UncheckedIOException ;
3640import java .util .concurrent .Executors ;
3741import java .util .concurrent .ScheduledExecutorService ;
3842import java .util .concurrent .TimeUnit ;
3943import java .util .stream .Stream ;
4044
4145public 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