diff --git a/plugins/in_tail/tail.c b/plugins/in_tail/tail.c index 4af656f4eb3..1b1be49f196 100644 --- a/plugins/in_tail/tail.c +++ b/plugins/in_tail/tail.c @@ -611,6 +611,14 @@ static struct flb_config_map config_map[] = { FLB_CONFIG_MAP_INT, "progress_check_interval_nsec", "0", 0, FLB_TRUE, offsetof(struct flb_tail_config, progress_check_interval_nsec), }, + { + FLB_CONFIG_MAP_TIME, "stat.read_interval_sec", "0s", + 0, FLB_TRUE, offsetof(struct flb_tail_config, read_interval_sec), + }, + { + FLB_CONFIG_MAP_INT, "stat.read_interval_nsec", "250000000", + 0, FLB_TRUE, offsetof(struct flb_tail_config, read_interval_nsec), + }, { FLB_CONFIG_MAP_TIME, "rotate_wait", FLB_TAIL_ROTATE_WAIT, 0, FLB_TRUE, offsetof(struct flb_tail_config, rotate_wait), diff --git a/plugins/in_tail/tail_config.h b/plugins/in_tail/tail_config.h index dc2f6480a08..9f2c714f96d 100644 --- a/plugins/in_tail/tail_config.h +++ b/plugins/in_tail/tail_config.h @@ -100,6 +100,9 @@ struct flb_tail_config { int progress_check_interval; /* watcher interval */ int progress_check_interval_nsec; /* watcher interval */ + int read_interval_sec; /* seconds to re-read file, only used by fs_stat */ + int read_interval_nsec; /* nanoseconds to re-read file, only used by fs_stat */ + #ifdef FLB_HAVE_INOTIFY int inotify_watcher; /* enable/disable inotify monitor */ #endif diff --git a/plugins/in_tail/tail_fs_stat.c b/plugins/in_tail/tail_fs_stat.c index 1141af6856a..4f0792237e0 100644 --- a/plugins/in_tail/tail_fs_stat.c +++ b/plugins/in_tail/tail_fs_stat.c @@ -184,9 +184,11 @@ int flb_tail_fs_stat_init(struct flb_input_instance *in, flb_plg_debug(ctx->ins, "flb_tail_fs_stat_init() initializing stat tail input"); - /* Set a manual timer to collect events every 0.250 seconds */ + /* Set a manual timer to collect events managed by 'read_interval' property */ ret = flb_input_set_collector_time(in, tail_fs_event, - 0, 250000000, config); + ctx->read_interval_sec, + ctx->read_interval_nsec, + config); if (ret < 0) { return -1; }