17.12.2013 21:20, David Lang:
The prior suggestions for omrest were specifically for a module that created a pull mechanism for getting logs rather than having the logs pushed to the destination at the speed that they arrive.

One of the justifications was avoiding overloading log destinations as they would be in control of the rate that they got data.


Rate control is equally possible with push-based model, say, with TCP, RELP or omprog. One real advantage of pull model is that it does not need to do retries when receiving side is busy or non-operational. Hence, it decreases delays significantly. It is even more valuable given out current discussion of problems with RELP and suspension. But if these problems were mitigated, pull mode could be less of a value.

Pull mode requires a model different from current worker threads with output modules; it is more like as input modules, which run own threads (while this is not strictly obligatory).


--
Pavel Levshin


David Lang


 On Tue, 17 Dec 2013, Brian Knox wrote:

I was thinking that omrest would be a module that made outbound http requests to send messages; not as something that waited for incoming http requests for messages. So, in my mind it was something far more similar to the current elastic search module, which pushes messages out.

So - more of an outgoing http request to an external rest api, rather than something providing a rest api to make calls into.

-----Original Message-----
From: rsyslog-boun...@lists.adiscon.com [mailto:rsyslog-boun...@lists.adiscon.com] On Behalf Of David Lang
Sent: Monday, December 16, 2013 1:57 PM
To: rsyslog-users
Subject: Re: [rsyslog] Modules in other programming languages?

On Mon, 16 Dec 2013, Brian Knox wrote:

I believe the output module for elastic search might be a good place
to start looking for anyone interested in writing an "omrest" module?
If I recall correctly the elastic search output uses libcurl.

not really.

currently every om* module consists of code that is executed by a rsyslog worker thread that is passed a list of messages and acts on each message.
omelasticsearch pushes messages via libcurl

for omrest you would need to change the entire paradigm of how an om* module would work.

Instead of being code invoked by a worker thread that's invoking many other om* code as well on a given message, the omrelp module would need to listen for a connection from the outside, and when it receives a request, it would need to retrieve messages from the queue, and the worker threads would need to leave the messages on the queue.

You should see by now that this is a really ugly thing to talk about implementing. It's almost a complete re-write of the rsyslog core to support this.


The other approach is to have omrelp maintain it's own queue of messages and knowledge of who should be asking for messages, timeouts for messages that aren't asked for, etc. At that point, omrelp's interface to rsyslog is straightforward, it's just the omrelp queue and interface stuff that gets really 'interesting' and people who want omrelp should work on writing some code that will perform all the relp functions that you want to support but just accepts new messages on stdin (which would let it be driven by omprog for now), and then as you get it running and find it useful the input portion could be changed to make it into a 'real' rsyslog om* module. Depending on what you do for your queue, you may be able to use a different language to handle adding things to the queue and pulling things from the queue. This would make it easy to have some rsyslog C code that adds things to the queueu.

David Lang
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to