Home

News: beet 1.4 beta 1 released - performance logging for Spring

  1. 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)

  2. 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...
  3. 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.
  4. 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.
    IMHO, I will use Spring AOP or AspectJ because I don't want to depend on some small, unpopular framework.
    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.)
  5. it's more than a method advisor[ Go to top ]

    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...
    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.
  6. i like beet[ Go to top ]

    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.
  7. Very cool[ Go to top ]

    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.
  8. re: very cool[ Go to top ]

    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.
    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?
  9. Maven support[ Go to top ]

    Does Beta 1 version have Maven support?
  10. 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.
    IMHO, I will use Spring AOP or AspectJ because I don't want to depend on some small, unpopular framework.
    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".


    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.)
    Doesn't seem like you didn't any thinking.
  11. 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."
  12. Examples of utility output?[ Go to top ]

    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?
  13. re: Example of utility output[ Go to top ]

    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?
    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).
  14. Difference with jamon ?[ Go to top ]

    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
  15. re: Difference with jamon?[ Go to top ]

    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.
  16. dont think so[ Go to top ]

    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
  17. re: dont think so[ Go to top ]

    i stand slightly corrected; the Spring API has JamonPerformanceMonitorInterceptor, which I had overlooked.
  18. 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
  19. re: MessAdmin[ Go to top ]

    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 :)
  20. maven repo ?[ Go to top ]

    Looks nice, I don't see it on my Maven 2 repo site. Any plans to package it as a maven repo package? Thx
  21. re: maven repo?[ Go to top ]

    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.
  22. 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.
    Totally silly and shortsighted.
    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.
  23. 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.
  24. 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
  25. 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.