Hi,
your are right ....
Gmetad();
#print_r($grid);
foreach ($grid as $cluster) {
$clustername=$cluster["NAME"];
print "<br>".$clustername."<br>";
$x=($grid[$clustername]["HOSTS_UP"] +
$grid[$clustername]["HOSTS_DOWN"]);
print $x;
# or
print "<br>";
$x=($cluster["HOSTS_UP"] + $cluster["HOSTS_DOWN"]);
print $x;
}
?>
greets
Ron
Am 04.05.2010 16:58, schrieb Bennett, Ron:
Ron,
Thanks, this is what we need. In case we decide not to count rrd
files, is there equivalent code to the following to count all hosts in
a single cluster?
#print_r($grid);
$mygrid=array_shift($grid);
print "<br>".$mygrid["NAME"]."<br>";
$x=($mygrid["HOSTS_UP"] + $mygrid["HOSTS_DOWN"]);
print $x;
Something like $grid[$cluster] ?
thanks,
Ron
------------------------------------------------------------------------
*From:* Ron Wellnitz [mailto:[email protected]]
*Sent:* Tuesday, May 04, 2010 1:57 AM
*To:* Bennett, Ron
*Cc:* [email protected]
*Subject:* Re: [Ganglia-general] counting all hosts
Hi Ron,
one possibility in php is
test.php:
<?php
include_once "./conf.php";
include_once "./get_context.php";
include_once "./functions.php";
include_once "./ganglia.php";
include_once "./get_ganglia.php";
Gmetad();
#print_r($grid);
$mygrid=array_shift($grid);
print "<br>".$mygrid["NAME"]."<br>";
$x=($mygrid["HOSTS_UP"] + $mygrid["HOSTS_DOWN"]);
print $x;
?>
if you are already in a "orginal" ganglia php script, you do not need
the "include"-lines.
when a host is down and you restart the gmetad daemon, this down host
will not be longer recognize by ganglia !
so it can be usefull to write a little script (php/ksh), which count
the number of a uniqe rrd file ... something like this:
$base="/var/lib/ganglia/rrds";
$hosts=0;
foreach (glob("${base}/*/*/cpu_idle.rrd") as $filepath) {
$array = split("/",$filepath);
$x = count($array);
$server = $array[$x-2];
$cluster = $array[$x-3];
if ( $server != "__SummaryInfo__" && $cluster != "__SummaryInfo__" ) {
$hosts++;
}
}
}
if you need to seperate between up and down, you can check the last
update of an rrd file
$cmd = "/usr/bin/rrdtool lastupdate $filepath 2>/dev/null";
$last_line = exec($cmd, $dummy, $retval);
if ( $retval == 0 ) {
$content = split(":",$last_line);
$timestamp = $content[0];
$idle = $content[1];
$diff = time() - $timestamp;
if ( $diff >= 120 ) { #offline;}
else {#online;}
}
greets
Ron
Am 03.05.2010 20:09, schrieb Bennett, Ron:
The sample PHP code contains instructions like the following to count
nodes for computing averages:
$series =
"DEF:'num_nodes'='${rrd_dir}/cpu_user.rrd':'num':AVERAGE "
. "DEF:'cpu_user'='${rrd_dir}/cpu_user.rrd':'sum':AVERAGE "
. "CDEF:'ccpu_user'=cpu_user,num_nodes,/ "
This method appears to count "HOSTS UP" as the number of nodes. For
a new gmetric, we need to be able to count total hosts (UP and DOWN),
not just UP.
Is there a recommended method in PHP for getting the total number of
nodes (UP plus DOWN)?
Thanks,
Ron
------------------------------------------------------------------------------
_______________________________________________
Ganglia-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ganglia-general
------------------------------------------------------------------------------
_______________________________________________
Ganglia-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ganglia-general