<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="&#1;" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Thanks for your reply. Most interesting.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I too am tailoring a collection package that&#8217;s highly
customized to my own systems and needs. And I too seem to have run into a
similar problem as you.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>My first attempt at this was to integrate a reworked copy of my
already existing metrics gathering script with the exec plugin, however there
are some serious performance issues related to spawning a JVM to invoke the java
based JMX client to query specific mBeans for attribute values.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I am trying to figure out how best to solve this performance
issue, but that would require a JMX client that doesn &#8216;t run inside a JVM.
The only real solution I see is to code up a JMX client in C. I can imagine
many people would have a use for that, but I don&#8217;t see any such clients
in existence when I went searching for one. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>I was hoping maybe someone else had already started such a
project and I might be able to contribute. &nbsp;I don&#8217;t have a great
deal of time to devote to such a project, so we&#8217;ll see how much work is
involved after I finish my research and mock up a proto-type. <o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>We&#8217;ll see where this leads&#8230;<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Steve.<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p>&nbsp;</o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Brian Long
[mailto:brian@dotspots.com] <br>
<b>Sent:</b> Thursday, September 11, 2008 1:59 AM<br>
<b>To:</b> Stephen Hillier<br>
<b>Cc:</b> collectd@verplant.org<br>
<b>Subject:</b> Re: [collectd] JVM statistics collection?<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal>Hi Steve,<o:p></o:p></p>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>I've integrated collectd with JMX in our systems. We use it
to poll the JVM as well as any other relevant metrics we want from our
applications.&nbsp;<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>What I ended up doing was creating a MonitoredResource and
MonitoredAttribute annotation (similar to ManagedResource and ManagedAttribute)
which can be applied to any bean and getter. Then I have a
MonitoredAnnotationBeanPostProcessor which registers all beans and their
attributes which wish to be monitored. A MonitoringAgent bean is constructed
which emits a single JMX operation, getMonitoredBeans. This returns a
collection of object names and attributes which have been decorated by the
Monitored* annotations and registered via the post processor. (And since there
are no beans to annotate for JVM metrics, I just hand-register all the
interesting JVM objects/attributes in code...)<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>I have a bridge process with is invoked by the exec plugin
which connects to an app and retrieves all monitored beans by invoking
getMonitoredBeans (via JMX obviously). It proceeds to then retrieve all the
monitored attributes by retrieving each attribute for each object name emitted
in getMonitoredBeans. The bridge is responsible for turning object names and
attributes into plugin/type/instance/data source labels that are posted by
PUTVAL.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<div>

<p class=MsoNormal>Everything about this works fine... the only thing we had to
revisit was launching the bridge app at every iteration. We eventually turned
it into a long-running process which never exits, just to avoid the overhead of
bringing up a new JVM each time.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</div>

<div>

<p class=MsoNormal>This is obviously very specific to a system which is based
around Spring, but I found it very simple to emit new metrics this way - all
you need to do is apply the annotations and everything works completely automatically.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

<div>

<p class=MsoNormal>-B<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<div>

<p class=MsoNormal>On Wed, Sep 10, 2008 at 5:59 AM, steve hillier &lt;<a
href="mailto:shillier@halogensoftware.com" target="_blank">shillier@halogensoftware.com</a>&gt;
wrote:<o:p></o:p></p>

<p class=MsoNormal><br>
&nbsp; &nbsp; &nbsp; &nbsp;Hi,<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp;I've read through the docs and faq, and done a few
test builds<br>
&nbsp; &nbsp; &nbsp; &nbsp;from<br>
&nbsp; &nbsp; &nbsp; &nbsp;source, but did not find any answers to my
question(s).<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp;I'm prototyping a statistics collection package that
includes<br>
&nbsp; &nbsp; &nbsp; &nbsp;system,<br>
&nbsp; &nbsp; &nbsp; &nbsp;network, and JVM statistics collection. I see that
collectd can<br>
&nbsp; &nbsp; &nbsp; &nbsp;do most<br>
&nbsp; &nbsp; &nbsp; &nbsp;of what I want already (great!), but I don't see
anything that<br>
&nbsp; &nbsp; &nbsp; &nbsp;might<br>
&nbsp; &nbsp; &nbsp; &nbsp;point towards someone else having used it to gather
JVM<br>
&nbsp; &nbsp; &nbsp; &nbsp;statistics.<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp;I'm not averse to writing my own plugin, but I don't
want to<br>
&nbsp; &nbsp; &nbsp; &nbsp;reinvent<br>
&nbsp; &nbsp; &nbsp; &nbsp;the wheel either, so my question is: Has anyone ever
tried to<br>
&nbsp; &nbsp; &nbsp; &nbsp;implement<br>
&nbsp; &nbsp; &nbsp; &nbsp;JVM statistics collection, specifically via JMX or
some such<br>
&nbsp; &nbsp; &nbsp; &nbsp;method?<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp;If not, what barriers might I encounter trying to
code up a<br>
&nbsp; &nbsp; &nbsp; &nbsp;plugin to<br>
&nbsp; &nbsp; &nbsp; &nbsp;add this functionality?<br>
<br>
&nbsp; &nbsp; &nbsp; &nbsp;Thanks,<br>
&nbsp; &nbsp; &nbsp; &nbsp;Steve.<br>
<br>
<br>
_______________________________________________<br>
collectd mailing list<br>
<a href="mailto:collectd@verplant.org" target="_blank">collectd@verplant.org</a><br>
<a href="http://mailman.verplant.org/listinfo/collectd" target="_blank">http://mailman.verplant.org/listinfo/collectd</a><o:p></o:p></p>

</div>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

</div>

</div>

</div>

</body>

</html>