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

Reply via email to