Re: Multi-Line Loggregator events and the new Splunk "HTTP Event Collector" API
Mike Youngstrom <youngm@...>
Any thoughts on what protocol this socket would listen too? Raw
We have thrown around one approach which solves the problem but would
require changes in the runtime. That solution would expose a socket to the
container where the application could emit logs. The application would now
have control over what delimits a message.
I've been thinking about your questions regarding the '\' approach:
As Erik mentioned in the last thread, multi-line logging is something which
the loggregator team would like to solve. But there are a few questions toI'd be perfectly happy if the solution was only for Diego. We are
answer before we can come up with a clean solution. We want a design which
solves the problem while not breaking existing apps which do not require
this functionality. Before implementing a solution we would also want to
answer if we want to do it for both runtimes or just Diego, since the way
log lines are sent to Metron differ based on the runtime.
surviving today but I think the feasibility of our current solution is
I guess the expectation is that loggregator would internally remove theI think this would be optimal.
This has performance implications because now some part of loggregatorCan you help me understand what you are referring to with "coalescing
will need to inspect the log message and coalesce the message with the
succeeding ones. We will need to do this in a way which respects
multi-tenancy. That means now we are storing additional state related to
log lines per app. We will also need to decide how long loggregator needs
to wait for the next lines in a multi-line log, before deciding to send the
line which it received. To me that's not a simple change.
messages" and "storing additional state related to log lines per app"? The
way I see it the current agents buffer until they see a '\n' then they
create an event. Adding an escaped line '\\n' the logic would be very much
the same as it is today, buffer until you find an unescaped new line. Then
unescape the remaining new lines.
Seems somewhat straight forward to me. Thoughts on considering a pull
request that does something like this?