I have stumbled upon a Jboss application that contain multiple services in it, which includes ActiveMQ portion and the application logic.
Since ActiveMQ is part of the JVM itself, I'm wondering why is it that 'method hotspot' view does not show classes/method of ActiveMQ. I just thought 'method hotspot' might be helpful when the ActiveMQ itself is having difficulty.
Or is this technically not possible?
Solved! Go to Solution.
The memory that the broker is allowed to use is not determined by the amount of memory allocated to the JVM. Although the broker is constrained by the amount of memory given to the JVM, the broker manages its memory independently. That is, the broker does not just simply use up all of the memory in the JVM and then die with an OutOfMemory exception.
In my case, I had a look at a JBoss embedded ActiveMQ Artemis queue listener.
Within the PurePath analysis, for the .onMessage() method, you can see from the code-level tab some further breakdown of method-level timings. This is all automatic, with no configuration.
The Dynatrace documentation mentions for messaging services, that it may not detect automatically how all messaging is processed because the application server may dequeue messages in a busy loop.
This is usually because Dynatrace automatically placed sensors are just going to time-out PurePaths of that nature anyway, so to overcome that you might try creating custom service definitions for your code.
See documentation on queue messaging custom services for more information.
Though having said that, below you will see another screenshot. Again, this was OneAgent automatically detected methods and displayed in the code-level tab for the queue onMessage method.
Clicking on a method line within the code-level PurePath tree will reveal further metadata for that method execution. So, I'd say it's actually rare that you would need custom services for this as lots of details are captured without it.