JXInsight/Simz – Many Parallel Worlds
In Where Big Data meets Big Activity in the JVM it was shown how JXInsight/Simz allows the monitoring of metered thread execution of many Java application runtimes from within a single Java runtime via the near real-time replay of metering feeds by simulating threads. Effectively creating a consolidated parallel world but without the overhead of state (object) and code (class) management for each and every Java application runtime.
Since the JXInsight/Simz service is a metered application runtime itself the
simz metering extension can be enabled to forward the metering feed onto another service instance creating multiple parallel worlds. One reason for doing so would be to provide a filtered partial view to monitoring client consoles connected to the second service instance.
The actual application runtime would have a
jxinsight.override.config file with the
simz client metering extension enabled.
Then the directly connected simz service would have the
simz client metering extension enabled in its
jxinsight.override.config file along with filtering.
Running both simz service instances on the same node requires the default port of 5151 to be changed for the indirect simz service instance.
Here is a screen recording showing such filtering of metering feed from one simz service to another.
Another use case for this capability is to augment the metering feed within the direct simz service with additional meters typically derived (calculated) from execution behavior (probes) and meter readings within the original source metering feed which are then forwarded along to the next chained indirect simz service. An example of such a derived meter would be a
unit.cost meter used for showback, chargeback or billing purposes. The derived metering would be passed on without the actual activity used as the basis for the meter being included in the feed.
Here is example of a meter config applied to the direct simz service instance configuration above.
The last change adds the following to the indirect simz service config.
Here is a screen recording showing this in action.
Finally another reason for creating many parallel worlds of an applications metered execution behavior would be to isolate each IT management domain (performance, capacity planning, auditing, service level) from each other.