Hi !
I installed the official Ganglian RPM on a SLES 10 x64. My graphs are really
strange, and the percentage values show random characters. I've just found
that the problem is in gmond, which sends random strings in the XML dialog.
I've tried to recompile gmond, but I have still the same problem.
Here's some of the strace output:
=============
accept(6, {sa_family=AF_INET, sin_port=htons(43998),
sin_addr=inet_addr("127.0.0.1")}, [17179869200]) = 9
write(9, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"
standalone=\"yes\"?>\n<!DOCTYPE GANGLIA_XML [\n <!ELEMENT G"..., 2328) = 2328
write(9, "<GANGLIA_XML VERSION=\"3.0.3\" SOURCE=\"gmond\">\n", 45) = 45
write(9, "<CLUSTER NAME=\"cluster\" LOCALTIME=\"1166087533\"
OWNER=\"unspecified\" LATLONG=\"unspecified\" URL=\"unspe"..., 108) = 108
write(9, "<HOST NAME=\"master.localdomain\" IP=\"192.168.0.106\"
REPORTED=\"1166087527\" TN=\"5\" TMAX=\"20\" DMAX=\"0\" "..., 150) = 150
write(9, "<METRIC NAME=\"disk_total\" VAL=\"1A.\332\326\260\" TYPE=\"double\"
UNITS=\"GB\" TN=\"1500\" TMAX=\"1200\" DMAX=\"0\" SLOP"..., 125) = 125
write(9, "<METRIC NAME=\"cpu_speed\" VAL=\"2993\" TYPE=\"uint32\"
UNITS=\"MHz\" TN=\"300\" TMAX=\"1200\" DMAX=\"0\" SLOPE=\""..., 122) = 122
write(9, "<METRIC NAME=\"part_max_used\" VAL=\"7y.\n\" TYPE=\"float\"
UNITS=\"\" TN=\"60\" TMAX=\"180\" DMAX=\"0\" SLOPE=\"bo"..., 120) = 120
write(9, "<METRIC NAME=\"swap_total\" VAL=\"4194296\" TYPE=\"uint32\"
UNITS=\"KB\" TN=\"300\" TMAX=\"1200\" DMAX=\"0\" SLOP"..., 125) = 125
write(9, "<METRIC NAME=\"os_name\" VAL=\"Linux\" TYPE=\"string\" UNITS=\"\"
TN=\"300\" TMAX=\"1200\" DMAX=\"0\" SLOPE=\"zero"..., 118) = 118
write(9, "<METRIC NAME=\"cpu_user\" VAL=\"2.F\" TYPE=\"float\" UNITS=\"%\"
TN=\"20\" TMAX=\"90\" DMAX=\"0\" SLOPE=\"both\" SO"..., 114) = 114
write(9, "<METRIC NAME=\"cpu_system\" VAL=\"3.0\" TYPE=\"float\" UNITS=\"%\"
TN=\"20\" TMAX=\"90\" DMAX=\"0\" SLOPE=\"both\" "..., 116) = 116
=============
As you can see, there's garbage for disk_total, part_max_used, cpu_user...
So all values of type float or double, are not properly converted.
The SLES runs under Qemu.
I've also added some printfs in the host_metric_value and here's what I get:
On the left the float converted by apr_* and on the right the prinf("%f") !!!
VALUE =2.G= =2.343750=
VALUE =2.G= =2.343750=
VALUE =9�.Ö= =93.487236=
VALUE =0.6o= =0.640000=
VALUE =0.1;= =0.119600=
VALUE =0.00= =0.000311=
VALUE =0.0= =0.000000=
VALUE =0.0= =0.000000=
VALUE =9�.ê= =95.312500=
VALUE =0.9�= =0.940000=
VALUE =0.4Y= =0.420000=
VALUE =0.1;= =0.113054=
VALUE =0.00= =0.000536=
Any ideas ?
Cheers,
--
Ludovic DROLEZ Linbox / Free&ALter Soft
www.linbox.com www.linbox.org