This week's book giveaway is in the Server-Side JavaScript and NodeJS forum.
We're giving away four copies of Micro Frontends in Action and have Michael Geers on-line!
See this thread for details.
Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

gathering statistics from esb

Ranch Hand
Posts: 72
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
We currently have an esb in place. Basically a servl^^web service that is a traffic director for a few types of transactions (order detail lookup, order quoting, and inventory lookup). The service looks at the request, and hands it off to the appropriate handler for processing. Typically, this involves sending the input data, or a form thereof, to another service (possibly in another application) for the main processing.

Now, we have a requirement to report statistics on the esb usage. How may order lookup requests came in, how many were hits/misses? How many order quoting requests were recieved? How many were hits/misses (where a miss is where we were unable to give a quote for the order because perhaps we couldn't understand the input request)?

I'm after ideas and suggestions for handling this type of statistics gathering. The statistics of each service is fairly unique to that particular service, but there could be transaction statistics that are common. Some high level technologies that have been suggested are, 1) mbean for I guess a method to easily view the data., and 2) snmp. Storing the information in a persistent store is not required.

Any thoughts/ideas are most welcome!

Ranch Hand
Posts: 862
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You may be able to use the open source JAMon api to do this (in the interest of disclosure i am the author). It aggregates statistics in realtime, is fast and lightweight. The current version was mainly created to track performance, but the next version (i am working on it as we speak) will aggregate stats for numbers besides time (ms.).

Here is the way you could use the current version of JAMon:

The next version will allow you to pass a value in and teh values will be aggregated. Sort of like a database, except individual data points are thrown out and only aggregates such as average, min, max, total, standard deviation and a few more are kept.

Here are a few examples

Here is a link to the code I am working on that will eventually make it to production. It is by no means done yet.

Also, this code was my first start and will do much of what you want in one class. You can use this if you want. Look at the main method to see how it works. This class can be run by itself.

To see a demo of JAMon go to the 'live demo' at the link below and then click on jamon stats in the app and you will see how it works.
[ December 20, 2005: Message edited by: steve souza ]
    Bookmark Topic Watch Topic
  • New Topic