2002-12-06 Phil Radden * Fixed a bug in machines/linux.c bytes_in bytes_out measurements 2002-10-30 Leif Nixon * Added a signal(SIGPIPE, SIG_IGN) to both gmond and gmetad to prevent them from terminating when a remote machine prematurely closes connections 2002-10-30 Martin Knoblauch * Added support for HPUX 11 on HPPA/64 2002-08-23 Federico Sacerdoti * Increased maximum gmetric value size to 1472 chars from 255. (1472 = 1500 Eth MTU - IP and UDP header bytes) Better memory efficiency by storing only necessary bytes in hash. 2002-08-21 Matt Massie * Added gmetad to the monitoring core distribution 2002-08-16 Federico Sacerdoti * Added disk_free, disk_total, and part_max_used disk metrics for Linux. They do not double count automounted directories as 'df' sometimes does. * Added LOCATION attribute to HOST tag for physical view of cluster. * Enabled the use of hostnames in gmond's trusted hosts list. 2002-08-14 Matt Massie * Updated gmetric to send the SLOPE and TMAX attributes to gmond * Making the XML port more bullet-proof when a remote client closes its connection prematurely * Changed the XML DTD to handle cases where a CLUSTER has no HOST or a HOST has no METRICs to report 2002-08-12 Matt Massie * Added TN (Time Now = number of seconds since last msg received) and TMAX (Time Max = maximum distance between multicast messages) to the HOST and METRIC XML elements. Also added the SLOPE attribute to METRIC which can be set to "zero", "positive", "negative" or "both" in order to make the Round-Robin database structure more efficient 2002-08-08 Preston Smith * Fixed AIX/libdnet build problems. (Turned out to be header file order in gmond.c and gmetric.c) 2002-08-06 Federico Sacerdoti * Added a "timestamp" type to gmond and gmetric. Also changed some unit names. Added a OWNER and LATLONG attribute to the CLUSTER tag, both set in the conf file. 2002-07-24 Matt Massie * Stitched in the libdnet into the ganglia distribution to handle the low-level networking necessary for dynamic routing and interface lookup. 2002-07-05 Preston Smith * Added a patch from Davide Tachella to get CPU MHz on AIX, along with appropriate autoconf magic to detect it, and tell how to get the libraries that report it if they're not found. 2002-06-26 Matt Massie * Fixed the heap corruption and thread madness on Solaris boxes. 2002-06-24 Preston Smith * Merged linux-alpha platform specific code into linux.c (cpu # and cpu MHz are the only different metrics) Fixed configure.in to reflect this. 2002-06-21 Matt Massie * Completely rewrote the underlying network library in order to allow for future growth (e.g. automatic discovery and all network interfaces, sending/receiving on multiple network interfaces, multicast forwarding) and to fix known bugs 2002-06-20 Preston Smith * Tweaked cpu_speed_func to only use the existing code for i386, ia64, and hp-parisc. Added code to get cpu clock speed for powerpc Sparc, s390, and arm don't report their cpu clock rate. * Added lines to machine_type_func to report arch name for sparc, alpha, powerpc, m68k, mips, arm, hppa, s390 Couldn't log into an m68k or mips box to check them out, so they may or may not successfully run gmond. 2002-06-20 Preston Smith * Added patches to aix.c to support AIX 5. * Added FreeBSD to the list that has SUPPORT_GEXEC=0 by default (configure.in) 2002-06-17 Steven Wagner * Updated autoconf to set SUPPORT_GEXEC flag if building on a supported platform (use --enable-gexec). gmond should report full IRIX metrics now, and run "out of the box." 2002-05-31 Matt Massie * Fixed a bug reading the XML output where some hosts had timestamps newer than the cluster timestamp and were mistakenly marked as down 2002-05-13 Matt Massie * Changed pre_process_node() gethostbyaddr() error reporting to be more sane for environments which nameservice problems * Updated listen.c to prevent out-of-range multicasted key values from crashing gmond in debug mode 2002-05-06 Matt Massie * Added an explicit heartbeat metric to gmond along with a GMOND_STARTED HOST attribute which removes the need for a 90 second delay in gmond restarts * Updated linux.c to correctly support the ia64 architecture 2002-05-01 Matt Massie * Gmond now has a configuration file for its configuration instead of passing commandline arguments 2002-04-26 Asaph Zemach * Completely rewrote ./gmond/machines/linux.c to be much more efficient by removing the need for 2 threads and pthread mutexes. 2002-04-26 Matt Massie * Modified net.c setsockopt() functions to be more portable 2002-04-19 Matt Massie * Fixed a bug in the .spec file where upgrades failed if gmond was not up * Updated autoconf to correctly configure ia64 machines 2002-04-18 Matt Massie * Enabled setsockopt SO_REUSEADDR for the mcast_join socket in order allow multiple instances of gmond to listen to the same multicast channel 2002-04-17 Matt Massie * Added the --list and --single_line option to gstat for output flexibility 2002-04-17 Alan Hagge * Added preliminary support for IRIX 2002-04-16 Matt Massie * Add the "gexec" metric in preparation for the release of gexec * Updated the gexec_cluster() function in libganglia to pull in more data from the XML and handle unresolved names and names without domains correctly * Updated gstat to print the updated information from gexec_cluster() * Added a --no_gexec flag to gmond for hosts that are not part of the computation cluster (file servers, frontends, etc) * Added a --all_trusted flag where gmond sees ALL hosts as trusted as suggested by Martin Knoblauch * Removed goto statement in pre_process_node() function to avoid rare looping bug thanks to feedback from Mike Snitzer 2002-04-12 Chris Elmquist * Updated gmetric.c to check if the name of the metric is empty to prevent the problem of blank metrics showing up in gmonds 2002-04-08 Matt Massie * Fixed a bug in the barrier code used in gmond * Fixed mcast_connect() on non-Linux systems related to the IP_MULTICAST_TTL option * Added the "--no_setuid" and "--setuid" flags to provide more euid flexibility 2002-04-05 Preston Smith * Added support for AIX machines 2002-04-04 Dave Wallace * Fixed a bug in gmond which caused big-endian architectures to incorrectly store multicast data and therefore misreport on the XML port. * Added a key value check of the XDR multicast data in ./gmond/listen.c 2002-04-04 Matt Massie * Updated ./lib/gexec_func.c gexec_cluster() function to handle hosts with no domainname correctly (as pointed out by David Wallace * Updated the program commandline options to obey the GNU Coding Standard * Added a --debug_level parameter to gmond to allow debugging the daemon without recompiling the daemon * Updated the --trusted_host option to allow multiple instances of the option * Added a --mcast_ttl gmond option to allow you to modify the Time-To-Live (TTL) of the outgoing multicast messages 2002-04-02 Neil Spring * Updated the gmond Makefile to cleanup the machine.c link on "make clean" 2002-04-02 Doc Schneider * Update the way the number of CPUs are collected in order to workaround a bug on AMD-based systems. 2002-03-28 Matt Massie * Change distribution tree to fit the ganglia model. All gmond clients are in the ./gmond directory and all gregisterd clients in ./gregisterd 2002-03-26 Matt Massie * Removed the use of streams (via fdopen) on the XML socket and replaced it with write()s on the socket descriptor to work around Linux bug under high-stress conditions 2002-03-25 Matt Massie * Added thread barriers to gmond initialization to ensure listening threads exist before the threads which multicast are created 2002-03-24 Matt Massie * Use XML_ParseBuffer() in gexec_cluster() in order to avoid double copying of buffers (XML input from gmond). Faster. 2002-03-22 Matt Massie * Updated gexec_cluster_free() to ensure no memory leaks even when cluster.num_nodes and cluster.num_dead_nodes equals zero * Used setvbuf to ensure the gmond and libganglia are using line buffering 2002-03-21 Matt Massie * Updated net.h to include netinet/in.h * Changed sockaddr_in_new function in net.c to plug a potential memory leak * Added XML_ParserFree() call to gexec_cluster() lib call to plug up memory leak * Modified ./gmond/server.c to prevent crashes under heavy stress conditions * Added fclose() calls to gexec_cluster() to plug a memory leak * Added gexec_cluster_free() call to gstat for good measure 2002-03-15 Preston Smith * Patched a wrong sysctl to get free memory for freebsd machines 2002-03-15 Matt Massie * Added mute and deaf mode for gmond * Created a new ganglia-monitor-core-lib distribution for the libganglia library. * Moved all the documentation to DocBook, added much more information and updated/removed what was there. Output docs to ./docs directory of the distribution in both HTML and PDF form. Also installed Doxygen to document libganglia. * Add the Ganglia Status Tool (gstat) which allows you to check the status of your cluster from the commandline. Hosts are sorted with least-loaded nodes at the top of the list. 2002-03-12 Matt Massie * Removed the need for the POSIX mutex in pre_process_node() allowing for faster processing of incoming multicast data 2002-03-11 Matt Massie * Changed gmond to not count itself as a running process when reporting the number of running processes. 2002-03-06 Doc Schneider * Changed the way ganglia builds RPMs to support non-root builds as suggested by an anonymous SourceForge user 2002-02-28 Matt Massie * Added a new CLUSTER element to the XML with two attributes: NAME and LOCALTIME. Necessary for monitoring clusters in many different timezones. 2002-02-27 Matt Massie * Fixed the getopt_long() call in gmond.c thanks to feedback from Meik Hellmund. The getopt_long() parameters didn't match the switch() statement breaking the "trusted_host" option. * Fixed a bug in gmond where connections from untrusted hosts caused segfaults. Error caused by passing datum_free() a NULL pointer in server_thread() of ./gmond/server.c. * Changed the way transient nameservice errors are handled by pre_process_node() in ./gmond/listen.c. Previously, transient errors were retried but now they are treated as errors (although gmond will continue trying to resolve the host when it gets a new multicast packet from it) * Updated the ganglia.spec file to merge gmond and gmetric into a single RPM, fixed some small bugs, and updated the RPM information. * Changed the gmetric options to also support long options and updated the help output (from -h, --help) to be much more descriptive 2002-02-27 Preston Smith * Updated the FreeBSD monitoring code to include all metrics which are monitored under Linux except number of running processes, absolute cpu idle time, and shared memory. SMP users may find that freebsd's cp_time sysctls is not completely accurate under FreeBSD stable meaning CPU%s might be inaccurate. However, it works under FreeBSD-CURRENT. 2002-02-22 Matt Massie * Added the getopt source to the ganglia library for system that don't have the getopt API available (Solaris, FreeBSD, etc) 2002-02-21 Matt Massie * Changed the "safe_host" option to "trusted_host" to make it clearer * Added the "num_nodes" and "num_custom_metrics" commandline options 2002-02-20 Matt Massie * Completely rewrote the underlying hash library because the original hash functions where over-engineered and had some memory leaks. New hash functions are superlight and fast. Built test program and profiled/traced all memory functions using mpatrol. No leaks. * Updated code to catch when transient nameservice errors occur and retry. Correctly handle hosts the don't resolve instead of treating as an error. * Added a patch submitted by Joshua J England for gmond to correctly report the number of CPUs and their speed on alpha architectures * Added a patch submitted by Eirikur Hallgrimsson and written by Yaroslav Klyukin for gmetric which allows users to chose which network interface gmetric multicasts metric data 2002-02-12 Matt Massie * Reduced the number of total threads by one by removing the for(;;)pause() spin and having the main thread do server work 2002-02-07 Matt Massie * created the function my_inet_ntop() function in libganglia to deal with the limitations of inet_ntoa in a multi-threaded environment * changed the self-organzing behavior of gmond to recognize when a transient error occured on a remote gmond process * added verbose error checking of gethostbyaddr() in listen.c 2002-02-04 Matt Massie * fixed a bug in the cpu_num_func() which reported AMD systems as having twice as many CPUs as they really did 2002-02-01 Matt Massie * increased the speed of the host security check for the XML port * added commandline options for almost all compile-time opts for gmond * added a --safe_host option to allow a host outside of the multicast channel to connect * now gmond strips all quotes (") from gmetric data to keep XML well-formed * improved the self-organizing behavior of the gmonds 2002-01-18 Matt Massie * changed the name of the distribution from ganglia to ganglia-monitor-core to be more descriptive * modified ./gmond/server.c in order to keep gmond from crashing when a client closes the connection prematurely * added patch to ./gmond/gmond.c from Neil Spring and Brian Youngstrom to add command line option and properly setuid to nobody * added gmond.init.SuSE to the distribution. Contributed by Oliver Mossinger.