Flume: Как отслеживать указанные подпапки с помощью spoolDir? - PullRequest
0 голосов
/ 11 ноября 2018

У нас есть система, загружающая файлы журналов в папку с именем по дате. Похоже:

/logs
   /20181030
   /20181031
   /20181101
   /20181102
   /...

Предположим, что я хочу отслеживать файлы журналов, которые были созданы в течение ноября, с помощью spoolDir. Как я могу это сделать?

#this won't work
a1.sources.r1.spoolDir = /logs/201811??

#this seems only works with files. Is it possible to filter folders here?
a1.sources.r1.includePattern = ^.*\.txt$

1 Ответ

0 голосов
/ 22 ноября 2018

В соответствии с исходным кодом flume, папки, соответствующие ignorePattern , пропускаются при повторном обращении к дереву папок (для регистрации средств отслеживания папок). Таким образом, вы можете игнорировать папки, которые не соответствуют вашим критериям. ^(?!201811..).*$ исключит все папки, которые не являются папками ноября 2018 года. Другие папки не будут отслеживаться. Но этот шаблон также будет применяться к именам файлов. Таким образом, любой файл с именем, которое не соответствует ^201811..$, также будет игнорироваться. Вы можете добавить шаблон ^.*\.txt$ (тот, который вы используете для шаблона включения) в регулярное выражение, чтобы flume принимал ваши входные файлы.

a1.sources.r1.ignorePattern = ^(?!(201810..)|(.*\\.txt)).*$

поможет тебе.

...