[hobbit] vmstat/cpu graphs for OS X

Scheblein, Adam adam.scheblein at marquette.edu
Thu Aug 24 15:48:15 CEST 2006


> -----Original Message-----
> From: Henrik Stoerner [mailto:henrik at hswn.dk]
> Sent: Wednesday, August 23, 2006 3:57 PM
> To: hobbit at hswn.dk
> Subject: Re: [hobbit] vmstat/cpu graphs for OS X
> 
> On Wed, Aug 23, 2006 at 11:27:42AM -0500, Scheblein, Adam wrote:
> >
> > I am currently working on implementing a script that will give output
> the
> > same as vmstat but for mac.  Does Hobbit create graphs based on what the
> > client is??
> 
> The Hobbit server will only process the types of data it knows about.
> And for OSX it doesn't know about any vmstat data since I've never seen
> any vmstat data from that type of system.
> 
> So first of all, it requires modifying the hobbitd/rrd/do_vmstat.c file
> to recognize your vmstat data format and create/update an RRD file.
> Second, if you're sending the data as part of the client message then
> the hobbitd/client/darwin.c file must have a line added to actually
> send the vmstat data to the RRD module.
> 


That makes sense (and is also what I suspected was happening


> > I ask because currently I have the following output coming from the mac:
> >
> > [vmstat]
> > procs -----------memory---------- ---swap-- -----io---- --system--  ----
> cpu----
> > r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs    us
> sy id
> > 2  0      0      0      0      0    0    0     0     0    0     0    3
> 47 49
> > 2  0      0      0      0      0    0    0     0     0    0     0    8
> 42 49
> >
> > (I only have r, us, sy and id implemented at the moment)
> 
> Still, it's a start. Are the other values impossible to get, or haven't
> you gotten around to implementing them yet?
> 

Most of the are possible to get, I just have not had time to implement them
yet.  I will get there probably within the next week or 2

> To get the graph, add these two items to the hobbitd/rrd/do_vmstat.c file:
> First a table describing the vmstat columns - just put it somewhere with
> the other tables:
> 
> static vmstat_layout_t vmstat_darwin_layout[] = {
>         { 0, "cpu_r" },
>         { 1, "cpu_b" },
>         { -1, "cpu_w" },
>         { 2, "mem_swpd" },
>         { 3, "mem_free" },
>         { 4, "mem_buff" },
>         { 5, "mem_cach" },
>         { 6, "mem_si" },
>         { 7, "mem_so" },
>         { 8, "dsk_bi" },
>         { 9, "dsk_bo" },
>         { 10, "cpu_int" },
>         { 11, "cpu_csw" },
>         { 12, "cpu_usr" },
>         { 13, "cpu_sys" },
>         { 14, "cpu_idl" },
>         { -1, "cpu_wait" },
>         { -1, NULL }
> };
> 
> Next, in the same file find this bit:
>           case OS_DARWIN:
>                 errprintf("Cannot handle Darwin vmstat from host '%s' \n",
> hostname);
>                 return -1;
> and replace it with
>           case OS_DARWIN:
> 		layout = vmstat_darwin_layout; break;
> 
> Finally, in the hobbitd/client/darwin.c file add this to invoke the
> standard vmstat handler from the client data: First a line declaring
> a variable for the vmstat data, just after the other declarations:
> 
> 	char *portsstr;
> 	char *vmstatstr;  <-- add this line
> 
> A bit further down grab the vmstat data:
> 	portsstr = getdata("ports");
> 	vmstatstr = getdata("vmstat");	<-- add this line
> 
> And finally pass this data to the vmstat module: After the line
> 	unix_ifstat_report(hostname, clienttype, os, hinfo, fromline,
> timestr, ifstatstr);
> add this line:
> 	unix_vmstat_report(hostname, clienttype, os, hinfo, fromline,
> timestr, vmstatstr);

I will give this a shot and let you know how it goes.  Thanks for the HOWTO
for changing the code -- I would have been lost.

> 
> 
> Regards,
> Henrik
> 
> 
> To unsubscribe from the hobbit list, send an e-mail to
> hobbit-unsubscribe at hswn.dk
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3747 bytes
Desc: not available
URL: <http://lists.xymon.com/pipermail/xymon/attachments/20060824/3556b85e/attachment.bin>


More information about the Xymon mailing list