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. > _______________________________________________ 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.

