[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\".
|