The Apache Qpid Broker-J heavy relies on java reflection mechanism. A static instrumentation agent
can be used to replace method.invoke()
reflection calls with static final
MethodHandle.invokeExact()
.
To use instrumentation agent following JVM argument should be added to the broker start parameters:
-javaagent:$BROKER_DIR/lib/qpid-broker-instrumentation-${broker-version}.jar
List of classes to instrument can be supplied as a comma separated list:
-javaagent:$BROKER_DIR/lib/qpid-broker-instrumentation-${broker-version}.jar=ConfiguredObjectMethodAttributeOrStatistic
-javaagent:$BROKER_DIR/lib/qpid-broker-instrumentation-${broker-version}.jar=ConfiguredObjectMethodAttributeOrStatistic,ConfiguredObjectMethodOperation
-javaagent:$BROKER_DIR/lib/qpid-broker-instrumentation-${broker-version}.jar=ConfiguredObjectMethodAttributeOrStatistic,ConfiguredObjectMethodOperation,AutomatedField
When no arguments supplied, all classes will be instrumented.
Apache Qpid, Messaging built on AMQP; Copyright © 2015 The Apache Software Foundation; Licensed under the Apache License, Version 2.0; Apache Qpid, Qpid, Qpid Proton, Proton, Apache, the Apache feather logo, and the Apache Qpid project logo are trademarks of The Apache Software Foundation; All other marks mentioned may be trademarks or registered trademarks of their respective owners