I was not thinking about the implementation. But since this is introducing a new configuration, I was bit concerned.
Supun.. On Thu, Dec 3, 2009 at 10:07 PM, Ruwan Linton <ruwan.lin...@gmail.com>wrote: > Supun, It is not going to be a that big change, you just need to change the > implementation of isStatisticsEnabled and isTracingEnabled method to look > for the global flag if it is not set at the respective component. > > and you need to modify the synapse configuration builder to look at the > definitions tag and set the global values of these. > > Thanks, > Ruwan > > > On Fri, Dec 4, 2009 at 9:42 AM, Supun Kamburugamuva <supu...@gmail.com>wrote: > >> Hi Ruwan, >> >> I think if we do this the correct way, the way you've suggested is the >> correct way. I was bit reluctant to do that because it is kind of like a big >> change. At least at the conceptual level. >> >> I like your idea and I'll come up with an implementation. >> >> Eric, What do you think? >> >> Thanks, >> Supun.. >> >> >> On Thu, Dec 3, 2009 at 6:21 PM, Ruwan Linton <ruwan.lin...@gmail.com>wrote: >> >>> Supun, >>> >>> I see a real value of Eric's suggestion. We could introduce three >>> attributes called "statistics", "trace", and "notifications" in to the >>> definitions tag level, so those are the global values and you may override >>> the global value at any configurable node, like on a sequence or endpoint or >>> even on a proxy. >>> >>> It is not clean if we bring this into the properties file, the XML model >>> that we use as the main configuration language allows you to nicely >>> implement that. So this effects statistics collection and tracing as well, >>> which can be turned on and off at a global level instead for the >>> notifications. >>> >>> Thanks, >>> Ruwan >>> >>> >>> On Fri, Dec 4, 2009 at 4:54 AM, Supun Kamburugamuva >>> <supu...@gmail.com>wrote: >>> >>>> +1 for a global property and we can include it to the synapse.properties >>>> file easily. But I'm also not sure about introducing an attribute to the >>>> endpoint configuration. >>>> >>>> Thanks, >>>> Supun.. >>>> >>>> >>>> On Fri, Dec 4, 2009 at 2:30 AM, Hubert, Eric <eric.hub...@foxmobile.com >>>> > wrote: >>>> >>>>> Agreed, coupling statistics and notification would not be a good idea >>>>> as we are talking about two non-related things. >>>>> >>>>> >>>>> >>>>> Regarding useful configurations options I would also need to think a >>>>> bit more about it… >>>>> >>>>> Introducing an optional attribute on the endpoint level to turn the >>>>> feature selectively on/off might (depending on the default) force the user >>>>> having to set it on a large number of configuration items. >>>>> >>>>> Having a global switch (either on or off) plus the ability to override >>>>> the global option on the endpoint level may save configuration overhead >>>>> and >>>>> turn out to be more flexible, but could also make the configuration harder >>>>> to read/understand. >>>>> >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Eric >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------ >>>>> >>>>> *From:* Supun Kamburugamuva [mailto:supu...@gmail.com] >>>>> *Sent:* Thursday, December 03, 2009 9:17 PM >>>>> >>>>> *To:* dev@synapse.apache.org >>>>> *Sub* >>>>> *ject:* Re: JMX notifications for Endpoint state changes >>>>> >>>>> >>>>> >>>>> HI Eric, >>>>> >>>>> I can understand your suggestion about turning notifications on/off >>>>> selectively. One thing is if the statistics are enabled for a endpoint >>>>> then >>>>> enable the notifications. But statistics and notifications are two >>>>> different >>>>> things. So that may be not good. Any ideas from the community how to do >>>>> this? May be we can introduce an attribute to the endpoint configuration? >>>>> >>>>> Thanks, >>>>> Supun.. >>>>> >>>>> On Fri, Dec 4, 2009 at 1:33 AM, Hubert, Eric < >>>>> eric.hub...@foxmobile.com> wrote: >>>>> >>>>> Hi Supun, >>>>> >>>>> >>>>> >>>>> You are welcome! Regarding my second point I think you are still able >>>>> to deliver some details, if you really like. If I remember correctly there >>>>> are actually three attributes type, message and userData, type and message >>>>> being String and type being Object. So you can still use userData to add >>>>> more detail which should not go into the message. The only thing is that >>>>> the >>>>> type of the user data should be some standard Object and not some custom >>>>> type. It has been a while since I last looked into this, but you may at >>>>> least want to check this… >>>>> >>>>> >>>>> >>>>> Regarding my first point I assumed you would already have some user >>>>> requirements in mind as most of the time this is the starting point… I’m >>>>> not >>>>> quite sure if all users really do need this capability at all, although I >>>>> really see its value. So at least I would expect a switch to turn this >>>>> feature completely on and off (also as part of an initial implementation). >>>>> The decision about activating the feature by default, or having the user >>>>> to >>>>> activate it on demand – is of cause something different. What do others >>>>> think about this? >>>>> >>>>> >>>>> >>>>> Any “more advanced” configuration could also follow later on – I agree. >>>>> My idea was just a more practical one. Depending on how Synapse is >>>>> operated >>>>> it might be the case that some of the endpoints are somehow “expected” to >>>>> be >>>>> suspended from time to time whereas others are expected to be 100% stable. >>>>> Normally monitoring configuration is handled in one central place. The >>>>> configuration knows about what events shall generate an alert and which >>>>> ones >>>>> have to be ignored to don’t flood the operational guys with “false >>>>> positives”. This could be realized by proper filtering. On the other hand >>>>> generating lots of events useless events will impose some overhead which >>>>> might be avoidable, if events are already fired selectively. This of cause >>>>> only makes sense if the configuration is managed centrally along with the >>>>> monitoring configurations. If this is done manually, most users will >>>>> probably prefer to filter on the client (monitoring) side. Just my >>>>> personal >>>>> 0.2 cents from both a users and a developer’s perspective. >>>>> >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Eric >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------ >>>>> >>>>> *From:* Supun Kamburugamuva [mailto:supu...@gmail.com] >>>>> *Sent:* Thursday, December 03, 2009 7:08 PM >>>>> *To:* dev@synapse.apache.org >>>>> *Subject:* Re: JMX notifications for Endpoint state changes >>>>> >>>>> >>>>> >>>>> Hi Eric, >>>>> >>>>> Thanks for the suggestions. >>>>> >>>>> I like your second idea. In Endpoint case I think we can avoid using a >>>>> User defined notification. We simply send a notification of type >>>>> synapse.endpoint.state.change. We don't need to say what is the current >>>>> state using a user defined notification. User can query the MBean and >>>>> figure >>>>> out what is the current state. >>>>> >>>>> My personal opinion about your first idea is we should consider it >>>>> after the initial implementation depending on the user requirements. This >>>>> gives us time to think about the correct way to have the configurations. >>>>> Still I don't have a clear understanding about how to configure this. So >>>>> my >>>>> initial plan was to enable it for all the endpoints as in the normal JMX >>>>> case. >>>>> >>>>> If we can come up with a correct sensible way to introduce this to the >>>>> configuration, I'm +1 for implementing it. >>>>> >>>>> Thanks, >>>>> Supun.. >>>>> >>>>> On Thu, Dec 3, 2009 at 1:32 PM, Hubert, Eric < >>>>> eric.hub...@foxmobile.com> wrote: >>>>> >>>>> Hi Supun, >>>>> >>>>> >>>>> >>>>> I’m +1 on the idea in general. There are at least two things which come >>>>> immediately into my mind we probably should consider when (before) >>>>> implementing this feature: >>>>> >>>>> 1) Configuration concept for event creation >>>>> >>>>> 2) Notification Object Type to use >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> 1) >>>>> >>>>> Here we should consider how configurable we want to keep the event >>>>> creation. So I’m thinking on some decisions like this: >>>>> >>>>> - only turn on/off event creation per type (e.g. type >>>>> endpoint marked as suspended) >>>>> >>>>> - or configurable per data object itself (e.g. on endpoint >>>>> level) as part of the configuration language >>>>> >>>>> >>>>> >>>>> Here I also see a trade off. On the one hand the user will likely only >>>>> be interested to keep his monitoring configuration in one central place. >>>>> Definitely he may not be interested in all kind of events. Of course there >>>>> is always the chance of using a NotificationFilter. >>>>> >>>>> >>>>> >>>>> 2) >>>>> >>>>> Depending on what information we want to distribute as part of an event >>>>> object we should keep in mind that the client needs to have the >>>>> Notification >>>>> Object in his class path. So if using a non-standard object (e.g. a custom >>>>> subclass of javax.management.Notification or non standard objects stored >>>>> inside the notification or one of its standard subclasses) we should >>>>> always >>>>> keep this in mind and think about its implications and at least consider >>>>> this in the artefact structure (created deployment units). Personally when >>>>> working with JMX I always try to avoid non-standard objects and restrict >>>>> myself to standard types if possible. >>>>> >>>>> >>>>> >>>>> Regards, >>>>> >>>>> Eric >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> ------------------------------ >>>>> >>>>> *From:* Supun Kamburugamuva [mailto:supu...@gmail.com] >>>>> *Sent:* Wednesday, December 02, 2009 10:47 PM >>>>> *To:* dev@synapse.apache.org >>>>> *Subject:* JMX notifications for Endpoint state changes >>>>> >>>>> >>>>> >>>>> Hi, >>>>> >>>>> At the moment Synapse exposes endpoint statistics through JMX. In case >>>>> of Endpoint state changes (i.e. marked as SUSPENDED) we can provide JMX >>>>> notifications. This allows users to take actions promptly without waiting >>>>> for pulling the endpoint status data. I would like to know the opinion of >>>>> the community. The implementation is simple and if you agree on this I can >>>>> provide a patch. >>>>> >>>>> Thanks, >>>>> Supun.. >>>>> >>>>> -- >>>>> Software Engineer, WSO2 Inc >>>>> http://wso2.org >>>>> supunk.blogspot.com >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Software Engineer, WSO2 Inc >>>>> http://wso2.org >>>>> supunk.blogspot.com >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Software Engineer, WSO2 Inc >>>>> http://wso2.org >>>>> supunk.blogspot.com >>>>> >>>>> >>>> >>>> >>>> -- >>>> Software Engineer, WSO2 Inc >>>> http://wso2.org >>>> supunk.blogspot.com >>>> >>>> >>>> >>> >>> >>> -- >>> Ruwan Linton >>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb >>> WSO2 Inc.; http://wso2.org >>> email: ru...@wso2.com; cell: +94 77 341 3097 >>> blog: http://ruwansblog.blogspot.com >>> >> >> >> >> -- >> Software Engineer, WSO2 Inc >> http://wso2.org >> supunk.blogspot.com >> >> >> > > > -- > Ruwan Linton > Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb > WSO2 Inc.; http://wso2.org > email: ru...@wso2.com; cell: +94 77 341 3097 > blog: http://ruwansblog.blogspot.com > -- Software Engineer, WSO2 Inc http://wso2.org supunk.blogspot.com