A syslog processor would be useful for log aggregation. I'm pretty sure that log4j, etc. have native syslog appenders.
-Joey On Sat, Apr 25, 2015 at 12:13 Bryan Bende <bbe...@gmail.com> wrote: > Joe, > > Thanks for the background on ListenUDP. > > The use case I was thinking of was log aggregation... most logging > frameworks like logback, log4j, etc., have a UDP appender, and they also > generally have a json format/layout that conforms with the "logstash" > format. I was thinking it would be cool to be able to use NiFi as an > alternative to logstash, flume, and whatever other technologies are being > used to get logs into a central location. There are obviously other options > besides udp, but it seemed easy and well supported. > > Maybe a property on the processor could control whether or not it buffered > datagrams vs producing a new FlowFile for each datagram? > > -Bryan > > > > On Fri, Apr 24, 2015 at 8:45 PM, Joe Witt <joe.w...@gmail.com> wrote: > > > Mike Moser: Great thinking! > > > > Bryan > > > > Taken from listen udp docs: "This processor listens for Datagram > > Packets on a given port and concatenates the contents of those packets > > together generating flow files roughly as often as the internal buffer > > fills up or until no more data is currently available." > > > > Quite honestly when this processor was originally built NiFi didn't > > have the ability to do the sort of fancy 'slab allocation' mechanism > > it supports today when generating a stream of flow files. So we could > > probably pretty easily reimplement this to behave more like you were > > thinking it should. But it is probably worth a bit of > > discussion/exploration to see what makes sense. The case we built it > > for was data arriving in UDP packets and it was structured in such a > > way that simple binary concatenation was sufficient because the data > > was inherently demarcatable/stream processing friendly. We could, > > however, implement it now such that each UDP datagram becomes a flow > > file. But not sure that makes sense either. This is sort of the > > inherent challenge of providing a raw socket listener. If the 'thing' > > being exchanged is not clear then we're not sure what the boundary of > > a given flow file should be. > > > > I'll stop rambling: Please if you would describe the use case a bit > > more we can think about whether providing a mode of 'datagram = > > flowfile' makes sense. > > > > Thanks! > > Joe > > > > On Fri, Apr 24, 2015 at 7:44 PM, Bryan Bende <bbe...@gmail.com> wrote: > > > Thanks for the suggestions... looks like it is in fact coming out of > > > ListenUDP like that. I'll try to figure out if this is expected > behavior, > > > or possibly something with how the messages are being sent. > > > > > > Sorry for the false alarm about MergeContent. > > > > > > On Fri, Apr 24, 2015 at 9:48 AM, Michael Moser <moser...@gmail.com> > > wrote: > > > > > >> At first glance, I would suspect ListenUDP is placing more than one > UDP > > >> datagram into one flowfile. It might be worth spending some time > > checking > > >> if that can happen. > > >> > > >> -- Mike > > >> > > >> > > >> On Thu, Apr 23, 2015 at 9:35 PM, Joe Witt <joe.w...@gmail.com> wrote: > > >> > > >> > Are you sure you're not sending the [ , ] over UDP as well ;-) > > >> > > > >> > Can you create a template of your flow and send it over? Perhaps > just > > >> > attach to a JIRA for this. MergeContent is a powerful and useful > > >> > thing so if you're seeing funky behavior we want to sort it out > > >> > quickly. > > >> > > > >> > On Thu, Apr 23, 2015 at 8:47 PM, Bryan Bende <bbe...@gmail.com> > > wrote: > > >> > > I'm trying to use MergeContent to merge json documents. I have the > > >> > Header. > > >> > > Demarcator, and Footer properties pointing to files with [ , ] > > >> > > respectively. I left all other properties the same, and set Max > > Entries > > >> > to > > >> > > 5 and Max Bin Age to 10 seconds. > > >> > > > > >> > > I have a simple flow with ListenUDP -> MergeContent -> > > >> > PutSolrContentStream > > >> > > (from the pull request). If I send a bunch of json documents over > > UDP, > > >> > most > > >> > > of them will merge correctly, but I'll see a couple where the > > >> demarcator > > >> > > didn't get inserted between two json documents. > > >> > > > > >> > > Any thoughts as to why this would happen? > > >> > > > > >> > > I added a significant amount of logging to the > > >> getDescriptorFileContent() > > >> > > method in MergeContent to see if there was a reason why it would > > return > > >> > > null for the demarcator, but nothing obvious is really jumping out > > at > > >> me. > > >> > > > >> > > >