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.
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.
To see a demo of JAMon go to the 'live demo' at the www.fdsapi.com 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 ]