[Top] [All Lists]

Re: Patch to Linux PMDA

To: lemming@xxxxxxxxxxxxxxxxxxx
Subject: Re: Patch to Linux PMDA
From: Mark Goodwin <markgw@xxxxxxx>
Date: Mon, 16 Oct 2000 12:28:47 +1100 (EST)
Cc: pcp@xxxxxxxxxxx
In-reply-to: <20001013091409.A523@arthur.plbohnice.cz>
Sender: owner-pcp@xxxxxxxxxxx
On Fri, 13 Oct 2000 lemming@xxxxxxxxxxxxxxxxxxx wrote:

>    Hello!
>    I have made patch to Linux PMDA. It takes data from /proc/tcp and creates
> network.tcpconn subtree containing values:
> ...
>   which hold number of connections in each state. I did this because we here
> need to archive data on how many connections are there to/from our server and 
> in
> which state they are. If you consider it worthy, please apply it to standard
> distribution.
>                                                       Michal Kara


thanks for your contribution! It's certainly "worth it", especially
for monitoring servers with a high tcp connection rate (e.g. http servers).

A couple of points:

1. I changed your code slightly; removed a debug printf that was filling up
   pmcd.log, fixed some indentation to match our sw=4 ts=8 style and changed
   your choice of cluster number to 19 (clusters 16, 17 and 18 are already
   in use by the new xfs, pagebuf and hinv.cpuinfo metric clusters).

2. the code you sent me had "Copyright SGI" in the header comments. Since it
   was obvious you based your code on proc_net_sockstat.[ch], I assume it's
   OK with you to leave those copyrights intact. I did however add a comment
   in proc_net_tcpconn.[ch] that the code was contributed by you. Is that OK?

3. here at SGI we should endeavor to sync up on oss.sgi.com more often
   (there is potential for duplicated effort that we obviously want to avoid)

As soon as I get an answer to (2) above, I'll upload to oss.sgi.com.
The new revision will be pcp-2.1.10. Below is the changelog relative to
the current version on oss.sgi.com (2.1.7-2).

-- Mark Goodwin

--- CHANGELOG since pcp-2.1.7-2 ---

pcp-2.1.8-2 (released 30 June 2000)
    - fix for bug #793871 pmlogger_check fails after redhat upgrade
      (because PCP entries in /usr/share/magic were clobbered)
    - also install /var/pcp/pmdas/linux/pmdalinux (as a non-DSO
      agent for debugging and profiling purposes).
    - added pmda.uname (uname -a) and pmda.version (linux pmda version)
      metrics. The pmda.uname metric is needed by the "pcp" command.
    - fix for #789025 fix to ensure rpm --verify succeeds immediately
      after an install, and other errors in pmlogger_check
    - released with ACE 1.3 (MR 19 Jul 2000)

pcp-2.1.9-6 (released 2 Aug 2000 for propack1.4 - alpha, not final)
    - install /usr/share/pcp/lib/rc-proc.sh containing common
      shell functions for use by rc scripts - these functions
      are tolerant of the chkconfig command missing (as in SUSE).
    - update all rc scripts and {pmlogger,pmie}_{check,daily} scripts
      to use the new rc-proc.sh functions. Remove the /etc/sysconfig
      stuff entirely (it was not being used anyway).
    - fix for #795934 : after rpm -U, pcp is chkconfig off. It turned
      out that an upgrade executes the %post _and_ the %preun scripts,
      which resulted in pcp being chkconfig'd on then off again.
    - fix pmie rc scripts so they work, are chkconfig friendly,
      and cope with _and_ without pmieconf (which is in pcp-pro).
      Also install /var/pcp/config/pmie/config.default as a simple example
      to monitor the load average and report to syslog. The pmie
      daemon is chkconfig off by default.
    - default run levels for pmcd and pmie (daemon) are now 2345, for SUSE
    - reconcile troff and groff differences in man page sources
    - fix for bug #797049 use strftime(%z) to determine timezone offsets
      w.r.t. daylight savings
    - portability surgery on src/libpcp_trace, and add new pmtracecounter()
      function, see pmtracebegin(3) for details.
    - reconcile pcp.env and pmcd.options from IRIX
    - fix for bug #797048 update-magic does not fully remove old entries
      before adding new, hence the magic file would grow after each upgrade
    - other minor reconciliation work with IRIX
    - fix build environment to allow proper handling of compressed man pages
    - add support for RPM version 4.
    - add support for add kernel.{all,percpu}.syscall metrics
      (requires kernel patch)
    - fixed for bug #797164: potential SEGV due to calling realloc on a 
      misused pointer - src/pmdas/weblog/weblog.c
    - use realpath(3) to resolve devices in /proc/mounts for filesys.* metrics

pcp-2.1.9-11 (unreleased)
    - add pagebuf metrics (Daniel and Nathan)
    - fixes so the build works if pcp is not already installed
    - minor security fix to pcp.spec.in (force mode 644 for .NeedRebuild)
    - make sure the src RPM builds correctly (LSRCFILE issues from LinuxWorld)
    - fix for bug #797756, upgrade from pcp2.1.6 to any newer version leaves
      pcp chkconfig off and the name space does not get rebuilt.
    - extended the weblogs PCP agent so it can report proxy/squid
      http servers, and added assorted http cache statistics.
    - fixed the Cisco router PCP agent (it was broken in pp1.3).
    - add support for disk stats in 2.4.x kernels with "disk_io" field
      in /proc/stat (only used when sard patch is not installed)
    - if the pcp-pro package (SGI proprietary) is installed, all libpcp
      clients on linux are now "authorized" to monitor IRIX systems that
      do not have a pmcd collector license.

pcp-2.1.9-12 (released circa Sept 13 2000, with SGI Propack1.4)
    - for 2.4 without sard, correctly match disk numbers in /proc/stat
      with major,minor numbers in /proc/partitions.

pcp-2.1.10-5 (new one, not released yet)
    - guard against DOS attack by restring incoming PDU size to 64K.
    - add hinv.map.cpu and hinv.cpu metrics exported by /proc/cpuinfo
    - fix small error in INSTALL_MAN rule in src/include/builddefs.in
    - fix for bug #793427 - correct symlinks for man pages with multiple
      entries in the .SH NAME section.
    - add network.tcpconn metrics to export counts of tcp connections in each
      state. Code contributed by Michal Kara (lemming@xxxxxxxxxxxxxxxxxxx)

<Prev in Thread] Current Thread [Next in Thread>