VMware Cloud Community
oalvarez_hyperi
Contributor
Contributor

Hyperic Server/Agent as JMX Server?

Since the Hyperic Server is running in JBoss, which has a JMX server, we're contemplating using it to host some custom MBeans. The MBeans are simply additional application metrics, that we'd like to use Hyperic to chart and alert on. Would this be possible? Would this be recommended?

Considering a production deployment would be 40-50 app servers, each with an agent, we're also thinking it may be better to use the Agent itself as the JMX server. (Since java 1.5 comes with a built-in JMX server) This would make comms to the JMX server local, i.e. faster since there would be no network hop to the Hyp. Server. And it would reduce the amount of traffic to the Hyperic Server, since the JMX data would be batched up with the rest of the data the Agent is reporting, instead of all the random metric reporting traffic to the JMX server. Again, would this be recommended?

We're trying to minimize traffic, resource demands, installation & configuration complexity, and increase responsiveness, etc.

Thanks,
O
0 Kudos
3 Replies
dgorman_hyperic
Enthusiast
Enthusiast

I would advise against re-architect the agent->server paridigm that Hyperic has built.

The data passed from the agent to server isn't that great and if your network hop is more than a few milliseconds then something in your network is badly misconfigured.

If I were you, I'd leave the product as is. The over head isn't great enough to justify re-architecting the app. 🙂
0 Kudos
oalvarez_hyperi
Contributor
Contributor

I'm not talking about rearchitecting the agent->server paradigm. I'm simply talking about turning on the JMX server in the agent VM itself. Having it do more work than it currently does. It's my understanding that the agents are fairly lightweight, i.e. don't consume lots of resources. Since, of course, we don't want to have the VM our app runs in to take on any extra load than necessary, we'd like to see if the Agent can support this. The question really is, is the agent 'too busy' to have this VM functionality turned on (via -Dcom.sun.management.jmxremote)? Will it cause too much overhead for the Agent, that will prevent it from doing it's job accurately?
0 Kudos
dougm_hyperic
VMware Employee
VMware Employee

I don't think this would add much overhead to the agent, I'd start there rather than the server. It'd be nice if we had the agent itself JMX-enabled by default, but we've needed to keep javax.management.* out of the top-level ClassLoader due to the serialVersionUIDs having not been defined until JMX 1.1. So for example, if the agent is running with a 1.5 JRE, the plugins wouldn't be able to monitor older app servers such as WebLogic 8, WebSphere 5, JBoss 3.2, etc.
But if all the MBeanServers in the mix are JMX 1.1 compliant, this shouldn't be an issue.
0 Kudos