antonin-

i really like what you've done here. i just reviewed your so_api25 setup and it's right in line with the direction ganglia is headed. we need a dso model where arbitrary metric can be easily registered.

the think that holds this up is that the network protocol needs to be extended to support this. currently, it is assumed that each metric ganglia collects has a globally registered unique key... this will not be the case in the future.

i plan on getting 2.6.0 ready for testing asap (we need to get this release finished quickly). i'd like to incorporate the changes that you have here into a later release. i think they look nice.

-matt

Antonin Karasek wrote:
Hi Matt,
you probably have heard about my path of Ganglia. I wrote about them on
"ganglia developers" forum about month ago.

Now, I have patched the latest snapshot of Gnaglia 2.5.8 - If you want to
make me really happy, add it to the official Gnaglia distribution...

The patched snapshot is here:
http://www.fi.muni.cz/~xkarase2/projekt/ganglia-monitor-core-2.5.8.phobos.tar.gz
-- Phobos is my nickname :-)

First improvement enables you to create sharet object with custom metric
and load it using "loadlib" directive of gmond.conf. This aproach is much
more efective than calling a shall script.

For writing such library you need this:
http://www.fi.muni.cz/~xkarase2/projekt/so_api25.tar.gz
API

The syntax of the directive is
loadlib /full/patch/to/the/lib.so

The second one enables gmetad to log metrices acording it's values - for
example you can log metric "cputemp", if it is greater than 50. The log
can be writen to file, syslog, or MySQL database. The condition can be
much more complicated - for more details, see my mail on the forum. I also
have a documentation, but only in Czech language - I'm ready to translate
it into english, but I don't have a time right now...

You can test the patch using this line in gmetad.conf:
log hostname.metric > val.value /full/path/to/the/file

Exact example:
log perian17.cpuuser > val.4 /home/matt/gmetad.log

Here are my notes to the patch:
Gmond:

New files:
so.h
so.c
metric.c

The definition of "metric" array is now in metric.c - This is because I
need to alloc it dynamically...
Of course, it is possible to copy the code back to gmond.c - it's on
you...

./srclib/libmetrics/libmetrics.h
 -- num_key_metric is not defined here, but in metric.c - I need to
change this value at runtime...

gmetad:

The main code is in process_xml.c - between "Copyright..." comments
 -- you can remove these comments - it's just a joke ;o)

You should check existence of mysql libs in Autoconf - I'm not familiar
with it...

Autoconf should also test existence of rrd header files (this is not
related to my path)

In gmetad/Makefile.in on line 135 is really dirty hack - if you can,
correct it anyhow - I don't know, where can I set the "@LIBS@" variable...


--
PGP fingerprint 'A7C2 3C2F 8445 AD3C 135E F40B 242A 5984 ACBC 91D3'

   They that can give up essential liberty to obtain a little
      temporary safety deserve neither liberty nor safety.
  --Benjamin Franklin, Historical Review of Pennsylvania, 1759

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to