On Thu, 18 Dec 2008, Rainer Gerhards wrote:

> On Fri, 2008-12-19 at 03:46 -0800, [email protected] wrote:
>> On Thu, 18 Dec 2008, Rainer Gerhards wrote:
>>
>>> Hi David,
>>>
>>> On Thu, 2008-12-18 at 21:38 -0800, [email protected] wrote:
>>>> with messages appearing out-of-order the 'last message repeated X times'
>>>> is pretty useless.
>>>
>>> Not really. Please note that form the perspective of the output module,
>>> messages do not appear out of order. The output module receives a stream
>>> of messages, and the "last message repeated x times" logic works on that
>>> stream. So no matter if messages are re-ordered by async queues (or UDP
>>> or whatever), the "last ... times" correctly reflects the way things
>>> were handed to the output module.
>>
>> but if the output module is then relaying to another system, that other
>> system (or the transport between them) can also re-order the messages
>
> ah, ok, remote scenario. Of course, that can happen. But that's "just"
> one use case where it is problematic.
>
>>> But I concur that this feature, in its current state, is very
>>> questionable. I've talked about this on the mailing list quite some
>>> time, I think there is also at least one blog post about it.
>>>
>>>>
>>>> I think I remember reading about an option to disable this, but another
>>>> work-around to the problem is to change the output so that it becomes
>>>> 'last message repeated X times %msg%', so you can see (most, if not all)
>>>> of the message being repeated in the line telling you that it was
>>>> repeated.
>>>
>>> As I said, the message in front of this message is either another repeat
>>> message or the message that is being repeated. So you can always trace
>>> back to what was repeated (but it is painful).
>>>
>>> Given the feedback I received on this feature (use cases), it should
>>> probably (and v4 would be an appropriate version to do so) be redisigned
>>> to be a rate-limiting feature on the input side. That would pretty much
>>> simplify code, too.
>>
>> but since things can be re-ordered after the input module is done with
>> them (multiple threads pulling from the queue, or relaying) it is still
>> useful for the 'message repeated' message to have more info about what it
>> is referring to.
>
> That makes sense, at least for scenarios where it is expected behaviour.
> For others, it would probably break analysers. So it needs to be
> optional. And probably on a per-action basis. I'll see if it is
> sufficiently simple, but the whole "last message repeated" thing is
> broken anyhow (IMO), I don't like the idea to invest any more than maybe
> an hour into that feature, especially in the light that the whole idea
> must be replaced in the not so distant future...

it's definantly a pain for analysers (a _lot_ of them really only look at 
one line at a time), that's why I started tweaking this on sysklogd, and 
while in theory just disabling it is the right answer, the ability to take 
a flood of inbound messages and reduce them to a much smaller number can 
save your logging system when things go wrong

I'll watch to see what happens.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com

Reply via email to