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 probe = new Probe("Name", "latency", timeDuration, logLevel);
long id = probe.startTicking() // this so same probe can be used by many
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)