Sorry for the delay, here it is: https://github.com/rsyslog/rsyslog/pull/410
On Tue, May 26, 2015 at 7:20 PM, singh.janmejay <[email protected]> wrote: > Ok, rand(max) it is then. > > -- > Regards, > Janmejay > > PS: Please blame the typos in this mail on my phone's uncivilized soft > keyboard sporting it's not-so-smart-assist technology. > > > On May 26, 2015 6:59 PM, "Rainer Gerhards" <[email protected]> wrote: >> >> 2015-05-26 13:13 GMT+02:00 singh.janmejay <[email protected]>: >> > Fixed here: https://github.com/rsyslog/rsyslog/pull/358 >> > >> > Some related thoughts: >> > - this control can be used to exactly count messages >> > - most load-balancing or sampling scenarios don't need exact counters, >> > they need to be approximately right >> > - random-numbers can be used for load-balancing (goes without saying >> > it doesn't give us counters, if needed for some other reason) >> > >> > Global variables work using a global-lock, which is not good for >> > throughput. >> > >> > So how about: >> > - we build support for thread-local (or rather worker-instance-local) >> > counters >> >> trying to fight feature creep: do we *really* need yet another >> variable class? Aren't we totally confusing users? >> >> > - we build a function rand(<max>) which returns a random number 0 <= >> > result < 'max' >> >> sounds like a minimal change (aka "good") to me. >> >> Rainer >> > >> > I am not suggesting one-of-the-two, instead Im suggesting 'both'. >> > >> > On Sat, May 23, 2015 at 8:24 AM, David Lang <[email protected]> wrote: >> >> you should be able to use global variables instead. no need for a >> >> plugin. >> >> >> >> David Lang >> >> >> >> On Sat, 23 May 2015, chenlin rao wrote: >> >> >> >>> Date: Sat, 23 May 2015 10:41:27 +0800 >> >>> From: chenlin rao <[email protected]> >> >>> Reply-To: rsyslog-users <[email protected]> >> >>> To: rsyslog-users <[email protected]> >> >>> Subject: Re: [rsyslog] cee json + mmsequence >> >>> >> >>> >> >>> mmsequence is deprecated? So which plugin instead? >> >>> >> >>> 2015-05-22 21:15 GMT+08:00 singh.janmejay <[email protected]>: >> >>> >> >>>> Cool, thats the answer I was looking for. >> >>>> >> >>>> >> >>>> On Fri, May 22, 2015 at 5:55 PM, Rainer Gerhards >> >>>> <[email protected]> wrote: >> >>>>> >> >>>>> 2015-05-21 17:40 GMT+02:00 singh.janmejay >> >>>>> <[email protected]>: >> >>>>>> >> >>>>>> Are $/ variable manipulations supposed to be atomic? >> >>>>> >> >>>>> >> >>>>> It depends on what you mean with "atomic". The value returned should >> >>>>> be consistent, that for sure. But if you use >> >>>>> >> >>>>> $/var = $/var + 1 >> >>>> >> >>>> >> >>>> Yes, I expect it to jump, but not get corrupted. >> >>>> >> >>>>> >> >>>>> and $/var is 16 when this starts, the result can very well be 18 if >> >>>>> another thread executed the exact same sequence. I think for this >> >>>>> use >> >>>>> there was an atomic increment function planned. I guess I never >> >>>>> implemented it, though. >> >>>>> >> >>>>>> >> >>>>>> Eg. $/var % 16 should never produce any number greater than 15, but >> >>>>>> it >> >>>> >> >>>> does. >> >>>> >> >>>> This will not be a problem if we use atomic read. >> >>>> Since you have made it clear that the idea was to make it >> >>>> atomic(which >> >>>> means this is a bug), I'll fix this. >> >>>> >> >>>>> >> >>>>> as David said, that's a bug. >> >>>>> >> >>>>>> >> >>>>>> Are they non-atomic by design? If so, is mmsequence the right thing >> >>>>>> to >> >>>>>> use (assuming it has atomic counters, I haven't checked if it >> >>>>>> really >> >>>>>> does)? >> >>>>> >> >>>>> >> >>>>> mmsequence is deprecated. >> >>>>> >> >>>>>> >> >>>>>> There are few options on the table, I guess. >> >>>>> >> >>>>> >> >>>>> before I take a shot at these, let's see if we had the same >> >>>>> understanding of "atomic". >> >>>> >> >>>> >> >>>> We do. >> >>>> >> >>>>> >> >>>>> Rainer >> >>>>>> >> >>>>>> 1. If $/ variables are supposed to be atomic, we just fix the impl. >> >>>>>> 2. We use mmsequence, and keep it alive (assuming it has atomic >> >>>> >> >>>> counters) >> >>>>>> >> >>>>>> 3. We fix mmsequence to implement atomic counters. >> >>>>>> 4. If $/ is not supposed to be atomic (by design), we implement $@ >> >>>>>> which is thread-local, so people can get atomic counters within >> >>>>>> thread >> >>>>>> (evenness in data(for load-balancing or sampling kind of usecase) >> >>>>>> is >> >>>>>> maintained by the fact that a single thread will pump a lot of >> >>>>>> messages, so across all threads it'll approximately be as even as >> >>>>>> it >> >>>>>> is in a single-thread. >> >>>>>> 5. We implement a random-number construct (which i believe either >> >>>>>> mmsequence or mmcount had) which allows acceptable load-balancing >> >>>>>> or >> >>>>>> sampling etc. >> >>>>>> >> >>>>>> Thoughts? >> >>>>>> >> >>>>>> On Wed, Dec 3, 2014 at 11:12 PM, David Lang <[email protected]> wrote: >> >>>>>>> >> >>>>>>> On Wed, 3 Dec 2014, Brian Knox wrote: >> >>>>>>> >> >>>>>>>> So two questions then: >> >>>>>>>> >> >>>>>>>> 1. In the case of using mmjsonparse on messages where we do not >> >>>>>>>> know >> >>>>>>>> ahead >> >>>>>>>> of time what all the. json attributes will be, is there a var for >> >>>>>>>> a >> >>>> >> >>>> place >> >>>>>>>> >> >>>>>>>> in the tree where we can get all attributes that were in the cee >> >>>> >> >>>> message? >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> There are three 'classes' of variables >> >>>>>>> >> >>>>>>> $! are 'normal' variables, the place that mmjsonparse, etc put the >> >>>> >> >>>> results >> >>>>>>> >> >>>>>>> of parsing the cee message by default. >> >>>>>>> >> >>>>>>> $. are 'local' variables, they are a place you can put stuff that >> >>>>>>> you >> >>>> >> >>>> don't >> >>>>>>> >> >>>>>>> want to end up in a message when you output $! >> >>>>>>> >> >>>>>>> $\ are 'global' variables, unlike the others, they persist from >> >>>> >> >>>> message to >> >>>>>>> >> >>>>>>> message. >> >>>>>>> >> >>>>>>> All of these variables are a tree, where you can have $!foo!bar >> >>>>>>> and >> >>>>>>> $!foo!baz. If you just reference $!foo it will output both bar and >> >>>>>>> baz >> >>>> >> >>>> as >> >>>>>>> >> >>>>>>> JSON >> >>>>>>> >> >>>>>>> so to see everything, parse the message and then output $! >> >>>>>>> >> >>>>>>>> 2. If mmsequence is being deprecated, is there a pointer to how >> >>>>>>>> to >> >>>>>>>> increment global variables to provide a sequence? >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> set $\var = $\var + 1; >> >>>>>>> >> >>>>>>>> 3. This morning I remembered the "mmcount" module - is this also >> >>>>>>>> being >> >>>>>>>> deprecated in favor of global variables? >> >>>>>>> >> >>>>>>> >> >>>>>>> >> >>>>>>> probably. >> >>>>>>> >> >>>>>>> David Lang >> >>>>>>> >> >>>>>>> >> >>>>>>>> Brian >> >>>>>>>> >> >>>>>>>> On Wed, Dec 3, 2014 at 3:52 AM, Rainer Gerhards < >> >>>> >> >>>> [email protected]> >> >>>>>>>> >> >>>>>>>> wrote: >> >>>>>>>> >> >>>>>>>>> 2014-12-02 21:59 GMT+01:00 Brian Knox <[email protected]>: >> >>>>>>>>> >> >>>>>>>>>> We have a case where we are receiving messages in @cee: format, >> >>>>>>>>>> and >> >>>>>>>>>> would >> >>>>>>>>>> like to add a sequence variable generated via mmsequence to the >> >>>> >> >>>> message. >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>>> Before I spend too much time digging into this I wanted to ask >> >>>>>>>>>> if, >> >>>> >> >>>> using >> >>>>>>>>>> >> >>>>>>>>>> some template hackery and json subtrees, this is something that >> >>>> >> >>>> sounds >> >>>>>>>>>> >> >>>>>>>>>> possible - and if maybe someone else was already doing it. >> >>>>>>>>>> >> >>>>>>>>>> >> >>>>>>>>> David has answered the real question, just let me add that >> >>>> >> >>>> mmsequence was >> >>>>>>>>> >> >>>>>>>>> a >> >>>>>>>>> work-around for v7 where global variables were not available. It >> >>>>>>>>> is >> >>>> >> >>>> now >> >>>>>>>>> >> >>>>>>>>> deprecated and will probably removed in a couple of month. >> >>>>>>>>> >> >>>>>>>>> I'll check the doc if it tells this clearly enough. >> >>>>>>>>> >> >>>>>>>>> Rainer >> >>>>>>>>> >> >>>>>>>>>> Thanks! >> >>>>>>>>>> Brian >> >>>>>>>>>> _______________________________________________ >> >>>>>>>>>> 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. >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> >> >>>>>> -- >> >>>>>> Regards, >> >>>>>> Janmejay >> >>>>>> http://codehunk.wordpress.com >> >>>>>> _______________________________________________ >> >>>>>> 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. >> >>>> >> >>>> >> >>>> >> >>>> -- >> >>>> Regards, >> >>>> Janmejay >> >>>> http://codehunk.wordpress.com >> >>>> _______________________________________________ >> >>>> 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. >> > >> > >> > >> > -- >> > Regards, >> > Janmejay >> > http://codehunk.wordpress.com >> > _______________________________________________ >> > 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. -- Regards, Janmejay http://codehunk.wordpress.com _______________________________________________ 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.

