Hi, Me & Srinath discussed a bit more on implementation. Following are the notes.
- We need to have different levels for each metric similar to Log4J levels. The API for metric will have a way to specify the level. - There should be a way to view historical data. By default, we can use a log file. - There should be a configuration file for metrics. The enable option will be part of the configuration file. But it can be overridden by a System property. Srinath, Please add if I missed anything. Also regarding the reporting options, the metrics provides support for Ganglia & Graphite [1]. The in-built support for HTTP reporting might not be directly useful for us [2]. I will check on these and see how we can get the data. Thanks! Best Regards, [1] https://dropwizard.github.io/metrics/3.1.0/getting-started/#other-reporting [2] https://dropwizard.github.io/metrics/3.1.0/manual/servlets/#manual-servlets On Tue, Nov 18, 2014 at 7:53 AM, Srinath Perera <[email protected]> wrote: > Look good Isuru!! > > On Thu, Nov 13, 2014 at 6:58 PM, Isuru Perera <[email protected]> wrote: > >> Hi all, >> >> I played with following performance libraries. >> >> - Metrics >> - Parfait >> - JAMon >> - Java Simon >> - Perf4J >> >> I did a simple comparison and blogged [1]. >> >> As Srinath mentioned, the Metrics library is more suitable for this >> proposal. >> >> It supports various measuring instruments like Meters, Counters, >> Histograms, Timers etc. >> >> Metrics supports JMX reporting and we should be able to write our own >> reporting implementations easily. We can use a reporting implementation to >> integrate with BAM. >> >> There is no support to enable/disable metrics. Since this is an important >> feature for us, I'm thinking of introducing a custom component for >> performance monitoring. >> >> The custom component will support to enable/disable performance >> monitoring via system property and JMX. The WSO2 components will use the >> new performance monitoring component and we will be using the Metrics only >> inside the new component. >> >> I'm working on this and for testing we need to select a WSO2 product. I'm >> thinking of adding the performance probes to WSO2 API Manager first. Since >> WSO2 CEP is also mentioned, we can have a look at that also. >> >> Please share any suggestions or feedback. >> >> I will update the thread once I create the initial design. >> >> Thanks! >> >> Best Regards, >> >> [1] >> http://isuru-perera.blogspot.com/2014/11/java-performance-monitoring-libraries.html >> >> >> On Mon, Sep 29, 2014 at 10:00 AM, Srinath Perera <[email protected]> >> wrote: >> >>> Thanks Thomas!! >>> >>> Paul, I looked at all 3 and really liked what Thomas sent ( >>> https://dropwizard.github.io/metrics/3.1.0/getting-started/). Licence >>> is Apache 2. >>> >>> I think I will try this out with a training project. >>> >>> --Srinath >>> >>> On Sat, Sep 27, 2014 at 11:37 AM, Thomas Wieger < >>> [email protected]> wrote: >>> >>>> please have a look on the metrics lib, which quite nicely provides >>>> support for capturing different kinds of statistics. see >>>> https://dropwizard.github.io/metrics/3.1.0/ >>>> >>>> >>>> regards, >>>> >>>> thomas >>>> >>>> Am Freitag, 26. September 2014 schrieb Sajith Ravindra : >>>> >>>> >>>>> IMHO, CEP is another product where this kind of probes can be really >>>>> useful as we have to deal with performance related requirements. As >>>>> there's >>>>> a major refactoring going on in siddhi I think we can we plant probes like >>>>> this into the Siddhi engine. It will be useful to evaluate the re-factored >>>>> Sindhi engines performance as well as to figure out performance >>>>> bottlenecks >>>>> in the future. >>>>> >>>>> >>>>> Thanks >>>>> *,Sajith Ravindra* >>>>> Senior Software Engineer >>>>> WSO2 Inc.; http://wso2.com >>>>> lean.enterprise.middleware >>>>> >>>>> mobile: +94 77 2273550 >>>>> blog: http://sajithr.blogspot.com/ >>>>> <http://lk.linkedin.com/pub/shani-ranasinghe/34/111/ab> >>>>> >>>>> On Fri, Sep 26, 2014 at 8:38 AM, Srinath Perera <[email protected]> >>>>> wrote: >>>>> >>>>>> We have some pretty nice probes already in ESB, that let you look >>>>>> into what is going in the same running in production. I think we need to >>>>>> do this generally and build it to other products. That should reduce time >>>>>> we spent debugging issues significantly. >>>>>> >>>>>> My proposal is to build a probe Lib that looks like following. >>>>>> >>>>>> There are two kinds of things you need to collect. >>>>>> >>>>>> 1. Throughput at give point of code (how fast calls goes though) >>>>>> 2. Latency between two points. >>>>>> >>>>>> >>>>>> We will have two types of Probes. Code would look like following. >>>>>> >>>>>> Probe probe = new Probe("Name", "throughput", timeDuration); >>>>>> .. >>>>>> probe.recordThroughput(); >>>>>> >>>>>> Probe probe = new Probe("Name", "latency", timeDuration, logLevel); >>>>>> ... >>>>>> long id = probe.startTicking() // this so same probe can be used by >>>>>> many threads >>>>>> ... >>>>>> probe.endTicking(id); >>>>>> >>>>>> Probe will summarise data over given duration and expose. We need >>>>>> >>>>>> >>>>>> 1. JMX bean >>>>>> 2. BAM Agent >>>>>> 3. Can turn on, off via JMX agent or via System property >>>>>> 4. Have Tool Box >>>>>> 5. Have in product UI >>>>>> 6. Can configured to write data to logs >>>>>> >>>>>> Each probe should be very small and should be able to create >>>>>> thousands without much effect. (e.g. create one for each mediator type) >>>>>> >>>>>> WDYT? >>>>>> >>>>>> --Srinath >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> ============================ >>>>>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera >>>>>> Site: http://people.apache.org/~hemapani/ >>>>>> Photos: http://www.flickr.com/photos/hemapani/ >>>>>> Phone: 0772360902 >>>>>> >>>>>> _______________________________________________ >>>>>> Architecture mailing list >>>>>> [email protected] >>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>> >>>>>> >>>>> >>> >>> >>> -- >>> ============================ >>> Blog: http://srinathsview.blogspot.com twitter:@srinath_perera >>> Site: http://people.apache.org/~hemapani/ >>> Photos: http://www.flickr.com/photos/hemapani/ >>> Phone: 0772360902 >>> >>> _______________________________________________ >>> Architecture mailing list >>> [email protected] >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> Isuru Perera >> Senior Software Engineer | WSO2, Inc. | http://wso2.com/ >> Lean . Enterprise . Middleware >> >> about.me/chrishantha >> > > > > -- > ============================ > Blog: http://srinathsview.blogspot.com twitter:@srinath_perera > Site: http://people.apache.org/~hemapani/ > Photos: http://www.flickr.com/photos/hemapani/ > Phone: 0772360902 > -- Isuru Perera Senior Software Engineer | WSO2, Inc. | http://wso2.com/ Lean . Enterprise . Middleware about.me/chrishantha
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
