pcp
[Top] [All Lists]

pcp updates

To: pcp@xxxxxxxxxxx
Subject: pcp updates
From: Nathan Scott <nscott@xxxxxxxxxx>
Date: Sat, 21 Feb 2009 22:39:23 +1100
[Note: been sitting on some of these for a few days, this
 is a bit of a checkpoint (aka. backup) of recent progress,
 some of which, particularly the Windows signal handling, is
 a WIP)...

Changes committed to git://oss.sgi.com/nathans/pcp.git

 configure.in                   |   10 
 man/man1/pmcd.1                |   12 
 man/man1/pmie.1                |   10 
 man/man1/pmlogger.1            |    2 
 man/man1/pmpost.1              |    5 
 src/GNUmakefile                |    2 
 src/include/pcp.conf.in        |   10 
 src/pcp/GNUmakefile            |    8 
 src/pmcd/pmdaproc.sh           |   14 
 src/pmcd/rc_pcp                |   23 
 src/pmcd/src/dofetch.c         |    2 
 src/pmcd/src/dostore.c         |    2 
 src/pmcd/src/pmcd.c            |    2 
 src/pmdas/oracle/GNUmakefile   |   50 
 src/pmdas/oracle/Install       |   37 
 src/pmdas/oracle/Remove        |   29 
 src/pmdas/oracle/pmdaoracle.pl | 2213
+++++++++++++++++++++++++++++++++++++++++
 src/pmdas/weblog/README        |    4 
 src/pmie/pmie_check.sh         |    8 
 src/pmie/pmie_daily.sh         |    6 
 src/pmie/rc_pmie               |    2 
 src/pmlogctl/pmnewlog.sh       |    4 
 src/pmlogger/pmlogger.c        |    2 
 src/pmns/Rebuild               |    4 
 src/pmproxy/rc_pmproxy         |    4 
 src/pmsignal/GNUmakefile       |   32 
 src/pmsignal/pmsignal.sh       |   85 +
 src/win32ctl/GNUmakefile       |   17 
 src/win32ctl/logger.c          |  144 --
 src/win32ctl/pcp-eventlog.c    |  144 ++
 src/win32ctl/pcp-services.c    |    3 
 src/win32ctl/pcp-setevent.c    |   84 +
 32 files changed, 2760 insertions(+), 214 deletions(-)

commit 959de687d7aaa515470c285a5388d7772de5aa1a
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Sat Feb 21 22:12:08 2009 +1100

    Initial conversion of Oracle PMDA to Perl.
    
    This PMDA is incomplete.  It is based on the original Oracle
    PMDA that Jonathan wrote at SGI, which was recently released
    under the GPL (Pro*C version).  Remaining work would involve
    testing it, and fleshing out the rest of the fetch and indom
    callbacks.
    
    All metric and instance domain definitions are included, and
    the man page is here.  It is now possible for someone who has
    a need to monitor Oracle, and just basic Perl / PCP knowledge
    to pick this code up and finish it (and maintain it).  Thanks
    to the use of Perl and DBI we are shielded so completely from
    the underlying Oracle version (and implementation in general)
    that this PMDA can now be shipped with the core PCP package.
    
    Contrary to popular mythology, there is no reason this PMDA
    will not be able to operate at comparable speeds to the old C
    implementation.  In fact, from looking thru some of the SQL in
    the original PMDA, there's potential for it to run faster than
    before.

commit 81f5d05dd789e345445191b5698405ff1bc97b0d
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 16:10:21 2009 +1100

    pmsignal should live in PCP_BINADM_DIR of course.

commit 4895fd2e8027687ca6203d7dbc6454d0c307e2f6
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 15:53:03 2009 +1100

    Rename win32 logger to pcp-eventlog for consistency.

commit 7e39ac5885bcb298e896ab596b86198b368b6ef5
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 15:45:47 2009 +1100

    Remove use of a non-existent macro in src/pcp/GNUmakefile, and small
tidyups there.

commit 874cf06a6f513c8232fe43cc7f14d489ce67bc50
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 15:44:31 2009 +1100

    Support tools for sending "signals" to PCP tools on Windows.
    
    Windows has minialistic support for the notion of (POSIX) signals.
    This is a major problem for PCP, where asynchronous notification
    drives many critical pieces of functionality in various tools...
    - orderly shutdown of many tools is expected when SIGTERM is sent,
      especially daemons being controlled by the rc scripts.
    - (non-default) agent installation process requires pmcd to reread
      its config file (via SIGHUP), namespace, etc.
    - pmlogger flushing is done by SIGUSR, log volume rotation is done
      via SIGHUP.
    - pmie log files are rotated via SIGHUP.
    - etc, etc.
    
    This commit provides a new win32 tool "pcp-setevent", and new kill
    equivalent for PCP tools ("pmsignal") - which works for all of the
    supported platforms, and implements the killall functionality also.
    
    Any scripts (or administrator actions) that need to send what would
    traditionally have been a signal (i.e. kill/killall) should use the
    new pmsignal tool.  On *NIX systems, this is a kill(1) wrapper.  On
    win32, it uses pcp-setevent.
    
    The Win32 implementation uses Event objects in a PCP/<pid>/<signal>
    namespace to facilitate delivery of "signals" (events).  Only the
    HUP, USR, and TERM signals will be supported.  All tools will allow
    TERM to be sent, and will do atexit(2) cleanup in this case.  pmcd
    and other daemons will be able to register HUP and USR handlers as
    well, which pmsignal will be able to notify.  The implementation of
    KILL is a special case, which is implemented by a direct Win32 API
    call to TerminateProcess (not "catchable").
    
    So, in future, we should not be open-coding the use of kill(1) and
    killall(1) in any shell scripts (PCP_KILLALL_PROG will soon go the
    way of the dodo) - pmsignal should always be used, in both cases.
    A man page is in the works to document pmsignal more completely,
    but the above pretty much covers it from a technical POV.  On *NIX
    systems administrators can obviously continue to use kill/killall,
    but all the Cool Kids will be using pmsignal.

commit 1e8514b8a830261b7d57eb25bf97a0ed6edf3098
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 13:13:01 2009 +1100

    Windows helper programs should use the native path syntax.

commit 2cee55ac336622f776433e42a044df5de672f3fc
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date:   Thu Feb 19 13:12:21 2009 +1100

    Startup scripts cannot assume "pwd" will not contain spaces.
    
    Problem discovered by Mikal Ward when running the rc_pcp script
    on Windows, with working directory "C:\Program Files\".



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