I'm using Perfino to monitor some Tomcats in SLES. The server has its own installer, so upgrading it is not an issue (just run the installer, and it'll detect the existing installation an upgrade it). But there is no installer for the agents.
I already contacted EJ-Technology's support about this issue (emphasis mine):
the agents are updated automatically. The monitored applications will continue to run with the same agent until they are restarted. In the VMs view you will see a special icon next to VM that indicates that the agent is out of date.
If I understand it correctly, the agents in the running JVMs are upgraded on the fly. But I checked the agent.jar
, perfino.jar
and libperfino.so
and neither of them are modified, so after restart, the server will need to upgrade it again.
I've already experienced problems with outdated agents, so I have begun building my own rpms to deploy the agent upgrades (that is, all the agent.tar.gz
). But I'm now a bit concerned about the appropriateness of this method: it depends on the class loader the jar of a running application can be overwritten. I've done it already and nothing broke. But...
Is it safe to unpack a new agent.tar.gz
of a running monitored application?