2015-08-12 1 views
1

Я глотаю поток журналов запросов HTTP с удаленного сервера и хочу создать счетчик совокупности для просмотра трафика. Я получаю JSON строку, содержащую поле «метку» в формате SQL:Spring XD aggregate counter timeField format

{"timestamp": "2015-08-12 23:21:13", ...} 

У меня есть поток под названием «тик» с определением:

time --fixedDelay=1 | script --script=Puller.groovy | json-to-tuple | null 

Я создаю совокупный счетчик:

tap:stream:tick.json-to-tuple > aggregate-counter --name=lcnt --timeField=payload.timestamp 

Как преобразовать значение поля в приемлемый формат и какой формат это?

+0

Хорошо, я обнаружил, что формат имеет вид: YYYY-MM-дд \ HH: мм: ss.uuuZ и создал трансформатор скрипт для преобразования этого формат. Но было бы разумно, если бы совокупный счетчик принимал формат timestamp в качестве параметра. –

ответ

0

Думаю, я не обращал должного внимания на документы. aggregate-counter имеет параметр dateFormat с синтаксисом SimpleDateFormat. Таким образом, окончательное решение выглядит следующим образом:

tap:stream:tick.json-to-tuple > aggregate-counter --name=lcnt --timeField=payload.timestamp --dateFormat='yyyy-MM-dd HH:mm:ss'