-
beet 1.4 beta 1 released - performance logging for Spring (24 messages)
- Posted by: Jason Trump
- Posted on: April 22 2009 08:27 EDT
beet is a recently open-sourced library for logging performance metrics in a Spring-based Java application. Builders of Spring-based web or other multi-tier applications are the target audience. Beet's primary design goals are: 1. no code modification required for installation 2. sensible default configuration 3. strongly correlated performance event logging across application layers -- view, logic, and persistence 4. associate user / session ids to performance events 5. extensibility for custom user identity management systems (e.g. not necessarily Java standards-based login methods) 6. flexible logging output: XML, binary, JDBC persistence, or custom 7. low resource consumption We provide a fairly rich set of Spring XML tags for configuration. The most basic configuration goes in your Spring applicationContext.xml file: Most applications won't need to get more elaborate than that. Full documentation and binaries are available at our project home page, http://beet.sourceforge.net. This is our first open source public beta, so there might be a few bugs. However, the code has already been production-tested prior to its open-source incarnation so it is reasonably mature. We also have a pretty strong body of unit tests (check out the coverage report on our website). Community feedback on ease of installation, clarity of documentation, and usefulness would be fantastic!Threaded Messages (24)
- Re: beet 1.4 beta 1 released - performance logging for Spring by Amin Mohammed-Coleman on April 22 2009 08:59 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Zhubin Salehi on April 22 2009 09:29 EDT
-
Re: beet 1.4 beta 1 released - performance logging for Spring by Thai Dang Vu on April 22 2009 10:00 EDT
-
it's more than a method advisor by Jason Trump on April 22 2009 01:48 EDT
- i like beet by c m on April 22 2009 03:04 EDT
-
Very cool by peter veentjer on April 22 2009 04:13 EDT
- re: very cool by Jason Trump on April 22 2009 04:26 EDT
- Maven support by Uma Ediga on August 07 2009 04:08 EDT
-
Re: beet 1.4 beta 1 released - performance logging for Spring by Mark N on April 22 2009 10:38 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Mark N on April 22 2009 10:44 EDT
-
it's more than a method advisor by Jason Trump on April 22 2009 01:48 EDT
-
Re: beet 1.4 beta 1 released - performance logging for Spring by Thai Dang Vu on April 22 2009 10:00 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Zhubin Salehi on April 22 2009 09:29 EDT
- Examples of utility output? by Andrew O'Malley on April 22 2009 23:15 EDT
- re: Example of utility output by Jason Trump on April 23 2009 03:17 EDT
-
Difference with jamon ? by Gilles Gilles on April 23 2009 04:34 EDT
-
re: Difference with jamon? by Jason Trump on April 23 2009 11:26 EDT
-
dont think so by Marc Logemann on April 25 2009 02:31 EDT
- re: dont think so by Jason Trump on April 25 2009 08:28 EDT
-
dont think so by Marc Logemann on April 25 2009 02:31 EDT
-
re: Difference with jamon? by Jason Trump on April 23 2009 11:26 EDT
-
Difference with jamon ? by Gilles Gilles on April 23 2009 04:34 EDT
- re: Example of utility output by Jason Trump on April 23 2009 03:17 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Cédrik LIME on April 23 2009 05:31 EDT
- re: MessAdmin by Jason Trump on April 23 2009 11:44 EDT
- maven repo ? by Evan Eustace on April 23 2009 15:15 EDT
- re: maven repo? by Jason Trump on April 23 2009 17:27 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Thai Dang Vu on April 24 2009 13:16 EDT
- Re: beet 1.4 beta 1 released - performance logging for Spring by Jason Trump on April 24 2009 15:25 EDT
- SpringSource has Spring Performance monitoring by Adam Fitzgerald on April 24 2009 19:26 EDT
- beta 2 is out, with online tutorial, sample data by Jason Trump on April 27 2009 14:39 EDT
-
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Amin Mohammed-Coleman
- Posted on: April 22 2009 08:59 EDT
- in response to Jason Trump
Hmmm...I'm not sure why you need this framework. I can do this using Spring AOP and if I wanted to measure spring's performance then I've got AspectJ. I could be wrong... -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Zhubin Salehi
- Posted on: April 22 2009 09:29 EDT
- in response to Amin Mohammed-Coleman
Hmmm...I'm not sure why you need this framework. I can do this using Spring AOP and if I wanted to measure spring's performance then I've got AspectJ.
I could do that too, but I'd rather use a framework that is already designed, implemented and tested.
I could be wrong... -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Thai Dang Vu
- Posted on: April 22 2009 10:00 EDT
- in response to Zhubin Salehi
IMHO, I will use Spring AOP or AspectJ because I don't want to depend on some small, unpopular framework.Hmmm...I'm not sure why you need this framework. I can do this using Spring AOP and if I wanted to measure spring's performance then I've got AspectJ.
I could be wrong...
I could do that too, but I'd rather use a framework that is already designed, implemented and tested.Community feedback on ease of installation, clarity of documentation, and usefulness would be fantastic!
Does that mean community feedback on feature requests will be ignored? (just my quick thought when I read that line. I don't mean anything.) -
it's more than a method advisor[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 22 2009 13:48 EDT
- in response to Thai Dang Vu
Hmmm...I'm not sure why you need this framework. I can do this using Spring AOP and if I wanted to measure spring's performance then I've got AspectJ.
The scope is small, but it is more than an AspectJ advisor as you imply. HTTP requests and SQL statements are recorded, and correlated back to the event that originated them. So you can identify what percentage of a request was spent in a method call, what percentage of the method call in SQL execution, so on. Configurable user id, session id, parameter logging add value to the data. Calling it a "framework" is also a little reductive, since most users will not make API calls directly, only adding lines to spring configuration. Also, calling it "unpopular" a few short days after public release is at least a little mean-spirited. I've used plenty of "unpopular" open source libraries, if for no other reason than to absorb something from reading someone else's code. If you find yourself writing a lot of trace logging statements then the library will be helpful. Though as you rightly say you can always write your own. This is true of anything. In any case, my PR skills are lacking. If my humble news post here fails to be compelling, please browse the library code or documentation to see if it communicates better.
I could be wrong... -
i like beet[ Go to top ]
- Posted by: c m
- Posted on: April 22 2009 15:04 EDT
- in response to Jason Trump
i actually think the scope of this project is quite nice. Yes people can do all this on there own, but its all about DRY principles. -
Very cool[ Go to top ]
- Posted by: peter veentjer
- Posted on: April 22 2009 16:13 EDT
- in response to Jason Trump
The scope is small, but it is more than an AspectJ advisor as you imply. HTTP requests and SQL statements are recorded, and correlated back to the event that originated them. So you can identify what percentage of a request was spent in a method call, what percentage of the method call in SQL execution, so on. Configurable user id, session id, parameter logging add value to the data.
That is very very cool and looks a lot like what Dynatrace does. It also is able to correlate all kinds of events and it is even able to trace 'methods' over multiple systems. Do you have some kind of slick looking webpage that can be used to display all kinds of QOS/performance numbers? This makes it very low entry to get started with. -
re: very cool[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 22 2009 16:26 EDT
- in response to peter veentjer
That is very very cool and looks a lot like what Dynatrace does. It also is able to correlate all kinds of events and it is even able to trace 'methods' over multiple systems.
Not yet :) Dynatrace does look a strong product. For the initial release we kind of focus on generating the data, using the direct database feed or ETL scripts for doing ad-hoc reporting after that. Not so much with the real-time analysis, which would be cool. I was thinking about an external feed to dashboard-type systems like dynatrace, helios, or jmanage. This would be a low-cost way to combine our event data with other system resource monitors, and give you that cool web page. The low-cost-of-entry appeal is definitely something we want though. Maybe we could also ship something embedded as part of the release package. Any recommendation for OSS product that displays aggregate QOS data? jmanage?
Do you have some kind of slick looking webpage that can be used to display all kinds of QOS/performance numbers? This makes it very low entry to get started with. -
Maven support[ Go to top ]
- Posted by: Uma Ediga
- Posted on: August 07 2009 16:08 EDT
- in response to Jason Trump
Does Beta 1 version have Maven support? -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Mark N
- Posted on: April 22 2009 22:38 EDT
- in response to Thai Dang Vu
Totally silly and shortsighted. What dependency? A jar and some Spring config. That is one the purposes of Spring. If you want to spend your time recreating the wheel, have at it. This project seems very interesting to me. Additionally, Pretty much most projects start "small and unpopular".
IMHO, I will use Spring AOP or AspectJ because I don't want to depend on some small, unpopular framework.Hmmm...I'm not sure why you need this framework. I can do this using Spring AOP and if I wanted to measure spring's performance then I've got AspectJ.
I could be wrong...
I could do that too, but I'd rather use a framework that is already designed, implemented and tested.Community feedback on ease of installation, clarity of documentation, and usefulness would be fantastic!
Does that mean community feedback on feature requests will be ignored? (just my quick thought when I read that line. I don't mean anything.) -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Mark N
- Posted on: April 22 2009 22:44 EDT
- in response to Mark N
Doesn't seem like you didn't any thinking.
Geeeze. Seems like i can't type. I meant "Doesn't seem like you did any thinking." -
Examples of utility output?[ Go to top ]
- Posted by: Andrew O'Malley
- Posted on: April 22 2009 23:15 EDT
- in response to Jason Trump
Hi, I've searched the site and downloaded the packages, but can't find an example of the output from the utilities. Is there an example of the logs produced and the subsequent analysis from the utilities somewhere? -
re: Example of utility output[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 23 2009 03:17 EDT
- in response to Andrew O'Malley
Hi, I've searched the site and downloaded the packages, but can't find an example of the output from the utilities.
No, actually, though that's good to include. Today I've added a "hello world" example app to source control for inclusion in beta 2. I'll roll up some log / utility output from that into the user guide, hopefully for inclusion on the site some time tomorrow (Apr 23).
Is there an example of the logs produced and the subsequent analysis from the utilities somewhere? -
Difference with jamon ?[ Go to top ]
- Posted by: Gilles Gilles
- Posted on: April 23 2009 04:34 EDT
- in response to Jason Trump
I'm already using jamon and I'm really happy about it. There is a great console and the configuration is really simple. It is deployed in production and the overhead is really There even is a log4j appender which is really useful. What advantage would I have to switch to beet ? Thanks Gilles -
re: Difference with jamon?[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 23 2009 11:26 EDT
- in response to Gilles Gilles
I've actually used jamon on projects in the (fairly distant) past -- it is quite good. one area where jamon definitely excels is in summarization. beet core doesn't summarize at runtime. instead the beet-utils package includes ETL scripts and some SQL statements to perform rudimentary analysis. i believe that we do have some other advantages, though: I believe JAMon still requires source-level integration (e.g. you call MonitorFactory.add from your code and so forth to establish metrics). beet is designed to be introduced to a system without code changes or a recompile to generate instrumented class files, only modifying the spring configuration. so also you don't have to remember to add monitors as you add code. we've also got some simple JMX controls for suspending / resuming logging, viewing diagnostic info (not QOS for your app!) and so on. i also think the optional compressed binary XML logger is a nice feature of beet; it grows much more slowly than text. -
dont think so[ Go to top ]
- Posted by: Marc Logemann
- Posted on: April 25 2009 02:31 EDT
- in response to Jason Trump
I believe JAMon still requires source-level integration (e.g. you call MonitorFactory.add from your code and so forth to establish metrics).
As far as i know there is a JAMon Advice available in Spring where you can just declare via AOP which methods to monitor. If i remember correctly because its some time ago that i used it.... So IMO no code level manipulation for method monitoring. Marc http://logemannreloaded.blogspot.com -
re: dont think so[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 25 2009 20:28 EDT
- in response to Marc Logemann
i stand slightly corrected; the Spring API has JamonPerformanceMonitorInterceptor, which I had overlooked. -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Cédrik LIME
- Posted on: April 23 2009 05:31 EDT
- in response to Jason Trump
This looks pretty interesting, and quite orthogonal to my own monitoring project (shameless plug) MessAdmin. We seem to share to same goals: * no code modification * zero configuration (or minimum in your case) * low performance impact * ... While beet is specific to Spring application, MessAdmin can be installed in any Java EE application, and exposes its data via a built-in administration application and JMX. Check it out! :) ________ MessAdmin, Java EE monitoring made easy -
re: MessAdmin[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 23 2009 11:44 EDT
- in response to Cédrik LIME
yeah, MessAdmin is definitely cool, and I think orthogonal is a good way to describe it. if you look at the end of chapter 2 of our user guide, you will find a link for your project: http://beet.sourceforge.net/build/core/docs/userguide/html/ch02s02.html#d0e337 I hope you don't mind :) -
maven repo ?[ Go to top ]
- Posted by: Evan Eustace
- Posted on: April 23 2009 15:15 EDT
- in response to Jason Trump
Looks nice, I don't see it on my Maven 2 repo site. Any plans to package it as a maven repo package? Thx -
re: maven repo?[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 23 2009 17:27 EDT
- in response to Evan Eustace
Any plans to package it as a maven repo package?
I've added an enhancement issue to our tracker. it should be pretty easy to put a pom together before 1.4 final. Which maven repository(ies) do you use? On a related note, we do use Apache Ivy to manage dependencies internally; the ivy descriptors are in source control. I thought I might host a public ivyrep on the project site as an alternate method for getting at the releases. -
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Thai Dang Vu
- Posted on: April 24 2009 13:16 EDT
- in response to Jason Trump
Also, calling it "unpopular" a few short days after public release is at least a little mean-spirited.
I am sorry for saying that. Personally, I like your attitude through your posts.IMHO, I will use Spring AOP or AspectJ because I don't want to depend on some small, unpopular framework.
I really was. Honestly, thank you for pointing it out. And if I don't want you use "small, unpopular" libraries, I can wait until they're big and popular, right? I like its "zero code modification" feature.Totally silly and shortsighted.
-
Re: beet 1.4 beta 1 released - performance logging for Spring[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 24 2009 15:25 EDT
- in response to Thai Dang Vu
I am sorry for saying that. Personally, I like your attitude through your posts. ... And if I don't want you use "small, unpopular" libraries, I can wait until they're big and popular, right? I like its "zero code modification" feature.
Thanks for saying so. It's good to ask the hard questions; the first question on seeing a project is always "do we need this", and for some, the answer is just no. There's been a lot of valuable commentary here -- it will make a stronger release. -
SpringSource has Spring Performance monitoring[ Go to top ]
- Posted by: Adam Fitzgerald
- Posted on: April 24 2009 19:26 EDT
- in response to Jason Trump
This project looks very interesting and I will be sure to watch its development. Detailed inspection into and reporting on Spring application performance is already available as part of the SpringSource Enterprise product without having to even modify your applicationContext. In particular, the monitoring and management tool, SpringSource Application Management Suite (AMS), let's you record the reported metrics and integrate them into an alerting system or trigger administrative actions. Technically this is achieved through aspects that report via JMX to an agent for collection in a central datastore with a web client for management. Adam FitzGerald SpringSource -
beta 2 is out, with online tutorial, sample data[ Go to top ]
- Posted by: Jason Trump
- Posted on: April 27 2009 14:39 EDT
- in response to Jason Trump
For those still following this thread, there's a new beta and a detailed tutorial up on the beet project site, complete with "hello world" example app. The tutorial includes sample output data as was requested earlier on this thread. I figured I would avoid spamming TSS with a more news posts until we get into final release territory in another couple of weeks. Before that I'll also improve the user docs to include a much richer discussion of the differences between beet, jamon, and commercial products like AMS.