From sly1979@song-liyan.cn Mon Jul 6 02:29:56 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,TVD_SPACE_RATIO
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n667Ts3O075945
for ; Mon, 6 Jul 2009 02:29:55 -0500
X-ASG-Debug-ID: 1246865427-21e702c10000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from smtp.zero.jp (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 1DD5F343C5C
for ; Mon, 6 Jul 2009 00:30:28 -0700 (PDT)
Received: from smtp.zero.jp (smtp06.zero.jp [210.157.5.236]) by cuda.sgi.com with ESMTP id OfZWCpZF4sFGJdiH for ; Mon, 06 Jul 2009 00:30:28 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
by smtp.zero.jp (Postfix) with ESMTP id A816A346D8
for ; Mon, 6 Jul 2009 16:30:27 +0900 (JST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at zero.jp
Received: from smtp.zero.jp ([127.0.0.1])
by localhost (smtp.zero.jp [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id wJMLP4Tv7fwl for ;
Mon, 6 Jul 2009 16:30:27 +0900 (JST)
Received: from daruma-01 (p11053-ipngn701marunouchi.tokyo.ocn.ne.jp [114.162.142.53])
by smtp.newsv.jp (Postfix) with ESMTPA id 7F54F346C8
for ; Mon, 6 Jul 2009 16:30:27 +0900 (JST)
Content-Type: text/plain; charset="iso-2022-jp"
From: song-liyan
To: pcp@oss.sgi.com
X-ASG-Orig-Subj: =?iso-2022-jp?B?GyRCPzdhRRsoQg==?=
Subject: =?iso-2022-jp?B?GyRCPzdhRRsoQg==?=
MIME-Version: 1.0
Date: Mon, 06 Jul 2009 16:19:25 +0900
Message-Id: <20090706073027.7F54F346C8@smtp.zero.jp>
X-Barracuda-Connect: smtp06.zero.jp[210.157.5.236]
X-Barracuda-Start-Time: 1246865429
X-Barracuda-Bayes: INNOCENT GLOBAL 0.4712 1.0000 0.0000
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2669
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
http://www.song-liyan.cn
From mort@sgi.com Mon Jul 6 12:38:48 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,
J_CHICKENPOX_74 autolearn=no version=3.3.0-rupdated
Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n66Hcl0J100901
for ; Mon, 6 Jul 2009 12:38:47 -0500
Received: from attica.americas.sgi.com (attica.americas.sgi.com [128.162.236.44])
by relay2.corp.sgi.com (Postfix) with ESMTP id ED07E3040A4;
Mon, 6 Jul 2009 10:39:19 -0700 (PDT)
Received: by attica.americas.sgi.com (Postfix, from userid 44682)
id 8454BA0A55A2; Mon, 6 Jul 2009 12:39:19 -0500 (CDT)
Date: Mon, 6 Jul 2009 12:39:19 -0500
From: Martin Hicks
To: Max Matveev
Cc: pcp@oss.sgi.com
Subject: Re: [pcp] IB pmda and writing out the default config file
Message-ID: <20090706173919.GC18171@alcatraz.americas.sgi.com>
References: <20090608171828.GA14199@alcatraz.americas.sgi.com> <18990.24528.172761.247069@iinet.net.au> <20090616182224.GI20783@alcatraz.americas.sgi.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <20090616182224.GI20783@alcatraz.americas.sgi.com>
User-Agent: Mutt/1.5.17 (2007-11-01)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Did anyone have any comments on this approach?
On Tue, Jun 16, 2009 at 01:22:24PM -0500, Martin Hicks wrote:
>
> On Tue, Jun 09, 2009 at 11:12:48PM +1000, Max Matveev wrote:
> >
> > Perhaps a better way to deal with this would be to add some keywords
> > to the config file to indicate local HCAs and to complain bitterly if
> > they're not found.
>
> In the end, I still don't love this solution because it requires manual
> intervention from the user to change or remove the config file when they
> change an HCA (or in my case when a diskless blade gets replaced in a
> cluster).
>
> How about this patch. It rejigs things a lot, but essentially:
>
> - No config file will be created unless the '-w' flag is passed to
> pmdaib. (this is a change)
>
> - By default, if no config file is found, only local ports are monitored.
> (before we would always write out a config file containing only local
> ports)
>
> - If a config file exists then it is the preferred source of information
> and perhaps not even local ports will be monitored. (before you could
> have edited the automatically created file to remove the local ports)
>
>
> So in the case of a user who is using a custom config file (either to
> name the instances differently, or to monitor remote ports) who replaces
> an HCA, it will be up to them to edit the config file that they created.
>
> For those who are using the ib pmda in its simplest mode with no config
> file, no changes will be necessary when an HCA is replaced but they have
> no guarantee of static device naming if they add an additional HCA.
>
>
>
> diff --git a/src/pmdas/ib/daemon.c b/src/pmdas/ib/daemon.c
> index 2a71151..12540cc 100644
> --- a/src/pmdas/ib/daemon.c
> +++ b/src/pmdas/ib/daemon.c
> @@ -33,7 +33,8 @@ usage(void)
> fputs("Options:\n"
> " -d domain use domain (numeric) for metrics domain of PMDA\n"
> " -l logfile write log into logfile rather than using default log name\n"
> - " -c path to configuration file\n",
> + " -c path to configuration file\n"
> + " -w write the basic configuration file\n",
> stderr);
> exit(1);
> }
> @@ -46,19 +47,22 @@ main(int argc, char **argv)
> pmdaInterface dispatch;
> char helppath[MAXPATHLEN];
> char *confpath = NULL;
> - char *p;
> int opt;
> + int writeconf = 0;
>
> __pmSetProgname(argv[0]);
> snprintf(helppath, sizeof(helppath), "%s%c" "ib" "%c" "help",
> pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
> pmdaDaemon(&dispatch, PMDA_INTERFACE_3, pmProgname, IB, "ib.log", helppath);
>
> - while ((opt = pmdaGetOpt(argc, argv, "D:c:d:l:?", &dispatch, &err)) != EOF) {
> + while ((opt = pmdaGetOpt(argc, argv, "D:c:d:l:w?", &dispatch, &err)) != EOF) {
> switch (opt) {
> case 'c':
> confpath = optarg;
> break;
> + case 'w':
> + writeconf = 1;
> + break;
> default:
> err++;
> }
> @@ -69,7 +73,7 @@ main(int argc, char **argv)
> }
>
> pmdaOpenLog(&dispatch);
> - ibpmda_init(confpath, &dispatch);
> + ibpmda_init(confpath, writeconf, &dispatch);
> pmdaConnect(&dispatch);
> pmdaMain(&dispatch);
>
> diff --git a/src/pmdas/ib/dso.c b/src/pmdas/ib/dso.c
> index 33f10a8..4e506f8 100644
> --- a/src/pmdas/ib/dso.c
> +++ b/src/pmdas/ib/dso.c
> @@ -37,5 +37,5 @@ ib_init (pmdaInterface * dispatch)
> pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
> pmdaDSO(dispatch, PMDA_INTERFACE_3, "ibpmda", helppath);
>
> - ibpmda_init(NULL, dispatch);
> + ibpmda_init(NULL, 0, dispatch);
> }
> diff --git a/src/pmdas/ib/ib.c b/src/pmdas/ib/ib.c
> index ccfb079..c027f77 100644
> --- a/src/pmdas/ib/ib.c
> +++ b/src/pmdas/ib/ib.c
> @@ -141,6 +141,70 @@ typedef struct port_state_s {
> char pcap[IB_ALLPORTCAPSTRLEN];
> } port_state_t;
>
> +static char confpath[MAXPATHLEN];
> +static int portcount;
> +/* Line number while parsing the config file */
> +static FILE *fconf;
> +static int lcnt;
> +
> +#define print_parse_err(loglevel, fmt, args...) \
> + if (fconf) { \
> + __pmNotifyErr(loglevel, "%s(%d): " fmt, fconf, lcnt, args); \
> + } else { \
> + __pmNotifyErr(loglevel, fmt, args); \
> + }
> +
> +static void
> +monitor_guid(pmdaIndom *itab, char *name, long long guid, int rport,
> + char *local, int lport)
> +{
> + int inst;
> + hca_state_t *hca = NULL;
> + port_state_t *ps;
> +
> + if (pmdaCacheLookupName(itab[IB_HCA_INDOM].it_indom, local, NULL,
> + (void**)&hca) != PMDA_CACHE_ACTIVE) {
> + print_parse_err(LOG_ERR, "unknown HCA '%s' in 'via' clause\n", local);
> + return;
> + }
> +
> + if ((lport >= UMAD_CA_MAX_PORTS) || (lport < 0)) {
> + print_parse_err(LOG_ERR,
> + "port number %d is out of bounds for HCA %s\n",
> + lport, local);
> + return;
> + }
> +
> + if (hca->lports[lport].hndl == NULL) {
> + print_parse_err(LOG_ERR,
> + "port %s:%d has failed initialization\n",
> + local, lport);
> + return;
> + }
> +
> + if ((ps = (port_state_t *)calloc(1, sizeof(port_state_t))) == NULL) {
> + __pmNotifyErr (LOG_ERR, "Out of memory to save state for %s\n", name);
> + return;
> + }
> +
> + ps->guid = guid;
> + ps->remport = rport;
> + ps->lport = hca->lports + lport;
> + ps->portid.lid = -1;
> + ps->timeout = 1000;
> +
> + if ((inst = pmdaCacheStore(itab[IB_PORT_INDOM].it_indom,
> + PMDA_CACHE_ADD, name, ps)) < 0) {
> + __pmNotifyErr(LOG_ERR, "Cannot add %s to the cache - %s\n",
> + name, pmErrStr(inst));
> + free (ps);
> + return;
> + }
> +
> + portcount++;
> +}
> +
> +
> static int
> foreachport(hca_state_t *hst, void (*cb)(hca_state_t *, umad_port_t *, void *),
> void *closure)
> @@ -166,7 +230,6 @@ foreachport(hca_state_t *hst, void (*cb)(hca_state_t *, umad_port_t *, void *),
> static void
> printportconfig (hca_state_t *hst, umad_port_t *port, void *arg)
> {
> - FILE *fconf = arg;
> uint64_t hguid = port->port_guid;
>
> __ntohll((char *)&hguid);
> @@ -176,6 +239,20 @@ printportconfig (hca_state_t *hst, umad_port_t *port, void *arg)
> hst->ca.ca_name, port->portnum);
> }
>
> +static void
> +monitorport(hca_state_t *hst, umad_port_t *port, void *arg)
> +{
> + pmdaIndom *itab = arg;
> + uint64_t hguid = port->port_guid;
> + char name[128];
> +
> + __ntohll((char *)&hguid);
> + sprintf(name, "%s:%d", port->ca_name, port->portnum);
> +
> + monitor_guid(itab, name, hguid, port->portnum, port->ca_name, port->portnum);
> +}
> +
> +
> static int mgmt_classes[] = {IB_SMI_CLASS, IB_SMI_DIRECT_CLASS,
> IB_SA_CLASS, IB_PERFORMANCE_CLASS};
> static void
> @@ -196,74 +273,10 @@ openumadport (hca_state_t *hst, umad_port_t *port, void *arg)
> lp->hndl = hndl;
> }
>
> -int
> -ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
> +static void
> +parse_config(pmdaIndom *itab)
> {
> - char hcas[IBPMDA_MAX_HCAS][UMAD_CA_NAME_LEN];
> - hca_state_t *st = NULL;
> - int i, n;
> - int lcnt = 0;
> char buffer[2048];
> - FILE *fconf;
> - int (*closef)(FILE *) = fclose;
> - int portcount = 0;
> -
> - if (nindoms <= IB_CNT_INDOM) {
> - return (-EINVAL);
> - }
> -
> - if (umad_init()) {
> - return (-EIO);
> - }
> -
> - if ((n = umad_get_cas_names(hcas, ARRAYSZ(hcas)))) {
> - if ((st = calloc (n, sizeof(hca_state_t))) == NULL) {
> - return (-ENOMEM);
> - }
> - } else {
> - return (0);
> - }
> -
> - for (i=0; i < n; i++) {
> - if (umad_get_ca(hcas[i], &st[i].ca) == 0) {
> - int e = pmdaCacheStore (itab[IB_HCA_INDOM].it_indom, PMDA_CACHE_ADD,
> - st[i].ca.ca_name, &st[i].ca);
> -
> - if (e >= 0) {
> - foreachport (st+i, openumadport, NULL);
> - } else {
> - __pmNotifyErr (LOG_ERR,
> - "Cannot add instance for %s to the "
> - "cache - %s\n",
> - st[i].ca.ca_name, pmErrStr(e));
> - }
> - }
> - }
> -
> - /* Process config file - if the executable bit is set then assume
> - * that user wants it to be a script and run it, otherwise try loading
> - * it. If it cannot be loaded then create a default one and
> - * process it again */
> - if (access(confpath, X_OK)) {
> - /* Not an executable, just read it */
> - if ((fconf = fopen (confpath, "r")) == NULL) {
> - if ((fconf = fopen (confpath, "w+")) != NULL) {
> - for (i=0; i < n; i++) {
> - foreachport (st+i, printportconfig, fconf);
> - }
> - fseek (fconf, 0, SEEK_SET);
> - }
> - }
> - } else {
> - fconf = popen(confpath, "r");
> - closef = pclose;
> - }
> -
> - if (fconf == NULL) {
> - __pmNotifyErr (LOG_CRIT, "Cannot open configuration file %s\n",
> - confpath);
> - return (-ENOENT);
> - }
>
> while ((fgets(buffer, sizeof(buffer)-1, fconf)) != NULL) {
> char *p;
> @@ -285,64 +298,98 @@ ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
> int rport;
> char local[128];
> int lport;
> - hca_state_t *hca = NULL;
> - port_state_t *ps;
>
> if (sscanf(p, "%[^ \t]%llx%d via %[^:]:%d",
> name, &guid, &rport, local, &lport) != 5) {
> __pmNotifyErr (LOG_ERR, "%s(%d): cannot parse the line\n",
> confpath, lcnt);
> - } else if (pmdaCacheLookupName(itab[IB_HCA_INDOM].it_indom,
> - local, NULL,
> - (void**)&hca) != PMDA_CACHE_ACTIVE) {
> - __pmNotifyErr (LOG_ERR,
> - "%s(%d): unknown HCA '%s' in 'via' clause\n",
> - confpath, lcnt, local);
> - } else if ((lport >= UMAD_CA_MAX_PORTS) || (lport < 0)) {
> - __pmNotifyErr (LOG_ERR,
> - "%s(%d): port number %d is out of bounds for "
> - "HCA %s\n",
> - confpath, lcnt, lport, local);
> - } else if (hca->lports[lport].hndl == NULL) {
> - __pmNotifyErr (LOG_ERR,
> - "%s(%d): port %s:%d has failed initialization\n",
> - confpath, lcnt, local, lport);
> - } else if ((ps = (port_state_t *)calloc(1, sizeof(port_state_t))) == NULL) {
> - __pmNotifyErr (LOG_ERR, "Out of memory to save state for %s\n",
> - name);
> - } else {
> - int inst;
> - ps->guid = guid;
> - ps->remport = rport;
> - ps->lport = hca->lports + lport;
> - ps->portid.lid = -1;
> - ps->timeout = 1000;
> -
> - if ((inst = pmdaCacheStore (itab[IB_PORT_INDOM].it_indom,
> - PMDA_CACHE_ADD, name, ps)) < 0) {
> - __pmNotifyErr (LOG_ERR,
> - "Cannot add %s to the cache - %s\n",
> - name, pmErrStr(inst));
> - free (ps);
> - } else {
> - portcount++;
> - }
> + continue;
> }
> +
> + monitor_guid(itab, name, guid, rport, local, lport);
> }
> }
> - (*closef) (fconf);
> +}
> +
> +int
> +ib_load_config(const char *cp, int writeconf, pmdaIndom *itab, unsigned int nindoms)
> +{
> + char hcas[IBPMDA_MAX_HCAS][UMAD_CA_NAME_LEN];
> + hca_state_t *st = NULL;
> + int i, n;
> + int (*closef)(FILE *) = fclose;
> +
> + if (nindoms <= IB_CNT_INDOM)
> + return -EINVAL;
> +
> + if (umad_init())
> + return -EIO;
> +
> + if ((n = umad_get_cas_names(hcas, ARRAYSZ(hcas)))) {
> + if ((st = calloc (n, sizeof(hca_state_t))) == NULL)
> + return -ENOMEM;
> + } else
> + /* No HCAs */
> + return 0;
> +
> + /* Open config file - if the executable bit is set then assume that
> + * user wants it to be a script and run it, otherwise try loading it.
> + */
> + strcpy(confpath, cp);
> + if (access(confpath, F_OK) == 0) {
> + if (writeconf) {
> + __pmNotifyErr(LOG_ERR,
> + "Config file exists and writeconf arg was given to pmdaib. "
> + "Using existing config file");
> + writeconf = 0;
> + }
> +
> + if (access(confpath, X_OK)) {
> + /* Not an executable, just read it */
> + fconf = fopen (confpath, "r");
> + } else if (!writeconf) {
> + fconf = popen(confpath, "r");
> + closef = pclose;
> + }
> + } else if (writeconf) {
> + fconf = fopen(confpath, "w");
> + }
> +
> + for (i=0; i < n; i++) {
> + if (umad_get_ca(hcas[i], &st[i].ca) == 0) {
> + int e = pmdaCacheStore(itab[IB_HCA_INDOM].it_indom, PMDA_CACHE_ADD,
> + st[i].ca.ca_name, &st[i].ca);
> +
> + if (e < 0) {
> + __pmNotifyErr(LOG_ERR,
> + "Cannot add instance for %s to the cache - %s\n",
> + st[i].ca.ca_name, pmErrStr(e));
> + continue;
> + }
> +
> + foreachport(st+i, openumadport, NULL);
> + if (fconf == NULL || writeconf)
> + /* No config file - monitor local ports */
> + foreachport(st+i, monitorport, itab);
> + if (writeconf)
> + foreachport(st+i, printportconfig, fconf);
> + }
> + }
> +
> + if (fconf) {
> + parse_config(itab);
> + (*closef)(fconf);
> + }
>
> if (!portcount) {
> - __pmNotifyErr (LOG_INFO,
> - "No ports found in configuration file %s\n",
> - confpath);
> + __pmNotifyErr(LOG_INFO, "No IB ports found to monitor");
> }
> -
> +
> itab[IB_CNT_INDOM].it_set = (pmdaInstid *)calloc(ARRAYSZ(mad_cnt_descriptors),
> sizeof(pmdaInstid));
>
> if (itab[IB_CNT_INDOM].it_set == NULL) {
> - return (-ENOMEM);
> + return -ENOMEM;
> }
>
> itab[IB_CNT_INDOM].it_numinst = ARRAYSZ(mad_cnt_descriptors);
> @@ -351,8 +398,8 @@ ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
> itab[IB_CNT_INDOM].it_set[i].i_name = mad_cnt_descriptors[i].name;
>
> }
> -
> - return (0);
> +
> + return 0;
> }
>
> static char *
> @@ -869,7 +916,7 @@ ib_store(pmResult *result, pmdaExt *pmda)
> return (PM_ERR_INST);
> }
> break;
> -
> +
> case METRIC_ib_control_hiwat:
> if ((id < 0) ||
> (id > pmda->e_indoms[IB_CNT_INDOM].it_numinst)) {
> @@ -884,7 +931,7 @@ ib_store(pmResult *result, pmdaExt *pmda)
> }
> }
> }
> - return (0);
> + return 0;
> }
>
>
> diff --git a/src/pmdas/ib/ibpmda.h b/src/pmdas/ib/ibpmda.h
> index 153743b..fae2c3c 100644
> --- a/src/pmdas/ib/ibpmda.h
> +++ b/src/pmdas/ib/ibpmda.h
> @@ -22,10 +22,10 @@
> #include "domain.h"
>
>
> -void ibpmda_init (const char *configpath, pmdaInterface *);
> +void ibpmda_init (const char *configpath, int, pmdaInterface *);
>
> int ib_fetch_val(pmdaMetric *, unsigned int, pmAtomValue *);
> -int ib_load_config(const char *, pmdaIndom *, unsigned int);
> +int ib_load_config(const char *, int, pmdaIndom *, unsigned int);
> void ib_rearm_for_update(void *);
> void ib_reset_perfcounters (void *);
> int ib_store(pmResult *, pmdaExt *);
> diff --git a/src/pmdas/ib/pmda.c b/src/pmdas/ib/pmda.c
> index 6a8e02d..d5557b3 100644
> --- a/src/pmdas/ib/pmda.c
> +++ b/src/pmdas/ib/pmda.c
> @@ -297,7 +297,7 @@ ib_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda)
> }
>
> void
> -ibpmda_init(const char *confpath, pmdaInterface *dp)
> +ibpmda_init(const char *confpath, int writeconf, pmdaInterface *dp)
> {
> char defconf[MAXPATHLEN];
> int sep = __pmPathSeparator();
> @@ -320,7 +320,7 @@ ibpmda_init(const char *confpath, pmdaInterface *dp)
> }
>
>
> - if ((dp->status = ib_load_config (confpath, indomtab, ARRAYSZ(indomtab))))
> + if ((dp->status = ib_load_config(confpath, writeconf, indomtab, ARRAYSZ(indomtab))))
> return;
>
> for (i=0; i < ARRAYSZ(indomtab); i++) {
>
>
> _______________________________________________
> pcp mailing list
> pcp@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/pcp
From nscott@aconex.com Tue Jul 7 05:05:48 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67A5leT137916
for ; Tue, 7 Jul 2009 05:05:47 -0500
X-ASG-Debug-ID: 1246961592-3ed6017f0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 1D9F49F3CF7
for ; Tue, 7 Jul 2009 03:13:13 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id e8x2IfDMB01GPoOL for ; Tue, 07 Jul 2009 03:13:13 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP id 5D0A71093AF
for ; Tue, 7 Jul 2009 20:06:19 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id Fare3Ocrb4JHfC1l for ; Tue, 07 Jul 2009 20:06:19 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 827E2A503E9
for ; Tue, 7 Jul 2009 20:05:48 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 5775D4FD82
for ; Tue, 7 Jul 2009 20:06:19 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 5zdUI+LEeVWy for ;
Tue, 7 Jul 2009 20:06:15 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 830C64FD84
for ; Tue, 7 Jul 2009 20:06:15 +1000 (EST)
Date: Tue, 7 Jul 2009 20:06:14 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <1292733719.215731246961174474.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates
Subject: pcp updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [211.28.150.226]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1246961594
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2763
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/nathans/pcp.git
src/cpan/PMDA/Changes | 4
src/cpan/PMDA/PMDA.pm | 4
src/cpan/PMDA/PMDA.xs | 171 ++++++++++++++++++++++++++---------------
src/pmdas/zimbra/pmdazimbra.pl | 36 +++++++-
4 files changed, 149 insertions(+), 66 deletions(-)
commit b7087f4b8209e14c31cd19753cba7256eff65234
Author: Nathan Scott
Date: Tue Jul 7 18:31:36 2009 +1000
Not all Zimbra installations have same proc file format.
In particular, our secondary server is missing the last four
entries that are there on the primary production server, for
the proc.csv file. Make the code parsing this a little more
robust, and able to deal with arbitrary missing entries.
commit 8371ef09d24478b4e769243ecf5ef4b423cc1462
Author: Nathan Scott
Date: Tue Jul 7 12:07:05 2009 +1000
Fix a subtle memory leak in the Perl PMDA interface.
It turns out that, for PCP::PMDA, we cannot call Perl code
from C code and expect that the G_DISCARD flag will do our
temporary variable memory cleanup for us. The reason for
this is that, in PCP::PMDA, the main flow of control is not
ever returned to Perl, where such cleanup would be done, as
we sit forever in the PMCD message loop. This is resolved
by explicitly deallocating local temporaries in all places,
not just some, and generally being more clear about where
memory is allocated and deallocated, especially in call sites
where multiple Perl functions may be called from C (fetch).
From nscott@aconex.com Wed Jul 8 01:57:48 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_73
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n686vkLV211277
for ; Wed, 8 Jul 2009 01:57:48 -0500
X-ASG-Debug-ID: 1247036299-5e0100230000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id BF48334C95B
for ; Tue, 7 Jul 2009 23:58:20 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id ZaFXIMTPxaDrIaGC for ; Tue, 07 Jul 2009 23:58:20 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP id 813B7112666
for ; Wed, 8 Jul 2009 16:58:15 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id kb9idDlDmZY8Inqk for ; Wed, 08 Jul 2009 16:58:15 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 2786BA501BC
for ; Wed, 8 Jul 2009 16:57:44 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 680774FD88
for ; Wed, 8 Jul 2009 16:58:15 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id MoYc9Nt-1bLp for ;
Wed, 8 Jul 2009 16:58:11 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 8B2C14FD82
for ; Wed, 8 Jul 2009 16:58:11 +1000 (EST)
Date: Wed, 8 Jul 2009 16:58:11 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <256967527.271021247036291473.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates (2.8.12)
Subject: pcp updates (2.8.12)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247036301
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.52
X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2840
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
0.50 BSF_RULE7568M Custom Rule 7568M
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/pcp/pcp.git
CHANGELOG | 5 +++++
VERSION.pcp | 2 +-
debian/changelog | 4 ++--
src/cpan/PMDA/Changes | 4 +++-
src/cpan/PMDA/local.c | 12 ++++++++----
src/include/pmapi.h | 3 +++
src/pmdas/darwin/pmda.c | 21 +++++++++++++++++++--
src/pmdas/mysql/pmdamysql.pl | 2 +-
src/pmdas/zimbra/pmdazimbra.pl | 5 +++--
9 files changed, 45 insertions(+), 13 deletions(-)
commit 6aa5ce6b15808811d16d93384a6f32cae24c4173
Author: Nathan Scott
Date: Wed Jul 8 16:47:25 2009 +1000
Bump version number to 2.8.12 for recent fixes.
commit c81fcbe3e9be80cd6825fd837d3e87f13a14055e
Author: Nathan Scott
Date: Wed Jul 8 16:32:13 2009 +1000
Remove a spurious diagnostic from the Zimbra PMDA.
commit 2ab37888b8224fd8ce168d7b347d70df5d000fdd
Author: Nathan Scott
Date: Wed Jul 8 16:31:37 2009 +1000
Correct the type for the mysql.variables.log metric.
commit 1b2031961c8b3ac03673a1f9548b5eb6127deb95
Author: Nathan Scott
Date: Wed Jul 8 16:30:52 2009 +1000
Fix a major botch in the Mac OS X kernel (darwin) PMDA.
Some macro cleanup during Windows porting has accidentally regressed
the darwin PMDA, causing it to fail to start thanks to some overly
strict checking on startup (pmda dispatch -> e_direct field) and a
newly introduced "hole" in the metric descriptor table thanks to the
removal of some no-longer-used metrics there.
Fix is to add back those metrics, just using not-supported types and
return codes on fetch, and be less strict during startup in case the
same class of error ever happens again (just warn instead of exiting
now, esp. since exiting is done in pmcd process context).
Issue found and fix tested by Ken, thanks!
commit 174cbdd44347580e5974de70db7221ac0d08fdbf
Author: Nathan Scott
Date: Wed Jul 8 16:23:42 2009 +1000
Add sockaddr forward declaration in case of unusual system headers.
commit b1824cb5b736317ad569e9800349e92f9d1f9596
Author: Nathan Scott
Date: Wed Jul 8 16:22:47 2009 +1000
Couple more bug fixes in the Perl PMDA interface.
In particular: fix an off-by-one when handling long input lines,
and make an effort to terminate any children started by the PMDA
at exit (clean exit, esp. from pcp start/stop script, improving
runtime of that script significantly when Perl agents deployed).
From kenj@internode.on.net Wed Jul 8 03:31:23 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,HTML_MESSAGE,
J_CHICKENPOX_35,J_CHICKENPOX_36,J_CHICKENPOX_37 autolearn=no
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n688VMMx214725
for ; Wed, 8 Jul 2009 03:31:23 -0500
X-ASG-Debug-ID: 1247042332-06f002220000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail.internode.on.net (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 9657FC6DD3F
for ; Wed, 8 Jul 2009 01:38:52 -0700 (PDT)
Received: from mail.internode.on.net (bld-mail19.adl2.internode.on.net [150.101.137.104]) by cuda.sgi.com with ESMTP id lkUrz7E2bH5u4fQW for ; Wed, 08 Jul 2009 01:38:52 -0700 (PDT)
Received: from [192.168.1.100] (unverified [118.208.148.56])
by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 2006493-1927428
for ; Wed, 08 Jul 2009 18:01:52 +0930 (CST)
X-ASG-Orig-Subj: Proposal for handling dynamic metric names (and hence dynamic
metrics)
Subject: Proposal for handling dynamic metric names (and hence dynamic
metrics)
From: Ken McDonell
Reply-To: kenj@internode.on.net
To: pcp@oss.sgi.com
Content-Type: multipart/mixed; boundary="=-pDyEAhgojv6YkbR8VKrp"
Date: Wed, 08 Jul 2009 18:31:51 +1000
Message-Id: <1247041911.7833.4.camel@bozo>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.1
X-Barracuda-Connect: bld-mail19.adl2.internode.on.net[150.101.137.104]
X-Barracuda-Start-Time: 1247042334
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0645 1.0000 -1.6090
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.61
X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2847
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
0.00 HTML_MESSAGE BODY: HTML included in message
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
--=-pDyEAhgojv6YkbR8VKrp
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
I've been threatening to get this out for sometime now.
There is no code to back any of this up (yet), it really is a
proposal ... so please let me know if you think this is a good or bad
idea, and holes being picked in the issues covered would be most
welcome, as would better ideas.
The motivation here is to get pmcd out of the way for cases where it is
the PMDA that knows what metrics are available, not the PMNS loaded by
pmcd, e.g. an mmv-like PMDA where the available metrics are discovered
from mmap'd files when the PMDA starts.
--=-pDyEAhgojv6YkbR8VKrp
Content-Disposition: attachment; filename="dynamic_pmns.html"
Content-Type: text/html; name="dynamic_pmns.html"; charset="UTF-8"
Content-Transfer-Encoding: 7bit
Dynamic PCP Performance Metric Namespaces
Proposal for Supporting Dynamic PCP Performance Metric Namespaces
Ken McDonell
kenj@internode.on.net
Initially in PCP, the
Performance Metrics Namespace (PMNS) was local to each machine where PCP
was being used.
This made it difficult to co-ordinate the PMNS versions on multiple monitoring
machines with the PMDAs installed on the collector machines and was
quickly identified as a weakness and replaced
by the "Distributed PMNS" we have today where
the PMNS is maintained on the PCP collector machine or within the
PCP archive.
Monitoring applications ship their namespace requests to the relevant
source of metrics, namely a pmcd or a PCP archive.
Aside from the rare use of a local PMNS (with the –n option) by PCP
monitoring applications, the principal use of the PMNS is to be loaded (or
reloaded) by pmcd and then used by pmcd to respond directly to
remote requests from PCP monitoring applications using
pmLookupName() (or the asynchronous equivalent pair
pmRequestNames() and pmReceiveNames()),
pmNameID() (or the asynchronous equivalent pair
pmRequestNameID() and pmRecieveNameID()),
pmNameAll() (or the asynchronous equivalent pair
pmRequestNameAll() and pmReceiveNameAll() &mdash although the former is defined, documented but not implemented!),
pmGetChildren(),
pmGetChildrenStatus() (or the asynchronous equivalent pair
pmRequestNamesOfChildern() and pmReceiveNamesOfChildren())
and
pmTraversePMNS() (or the asynchronous equivalent pair
pmRequestTraversePMNS() and pmReceiveTraversePMNS()).
The PMNS on a collector machine is maintained as
a single file with entries added and deleted as a part of the installation
and removal of a PMDA.
While this regime has served PCP well for most PMDAs, there have been
a small number of cases where the static nature of the PMNS has not
been appropriate, e.g.
Existing methods for handling a dynamic aspect of the PMNS are all
ugly and error-prone, e.g. make a new PMNS, update the global
PMNS and sent pmcd a SIGHUP signal.
Proposal Overview
The existing PMNS will be extended (no backwards compatibility issues) to
introduce a new "non-terminal" node that will be used to indicate
that the PMNS below this point is dynamic and defined by the associated
PMDA.
As an example to be used throughout this proposal, the foo PMDA (domain 44) supports dynamic names below the
foo.count
node in the PMNS.
The relevant fragment of the ASCII PMNS would be as follows:
root {
...
foo
...
}
...
foo {
version 44:0:1
count 44:*:*
memory 44:0:2
}
The foo PMDA is willing to export metadata and metric values for
the following additional (dynamic) metrics:
foo.count.ops (PMID 44:1:0)
foo.count.errs (PMID 44:1:1)
foo.count.numcount (PMID 44:0:27)
Changes to pmcd and new interactions with the foo PMDA would
mean that attempts to look up the PMIDs for metrics with names beginning
foo.count. would be passed
from pmcd to the foo PMDA, and similarly requests to find the names
of metrics given their PMID would also be passed from pmcd to the foo PMDA if they are not resolved in the PMNS loaded into pmcd.
Detailed Changes Required
Changes to the ASCII PMNS Format
As forshadowed, the syntax :*:*
after a domain number would flag a PMNS node as the root of a subtree of
names to be resolved in the associated PMDA.
The only place where the ASCII PMNS format is known at this level of detail
is in the internal routine loadascii() of libpcp which
is called from pmLoadNameSpace(),
pmLoadASCIINameSpace()
and pmGetPMNSLocation().
So extending the parser here is simple.
Changes to the Binary PMNS Format
The binary format of the PMNS is what is loaded into the address space
after the ASCII PMNS has been parsed (it is also the format generated
by pmnscomp and read by the libpcp routines, but this
is just a performance short cut — pmnscomp will need almost no
change as it simply writes out the binary PMNS after it has been
loaded).
The relevant data structure is __pmnsNode (defined in <pcp/impl.h>).
Now this structure is sufficiently public that we cannot change it in
any way that would break binary compatibility, and the only field avalable to encode both the PMDA's domain number
and the dynamic nature of the node in the PMNS is the
pmid field.
Internally a pmid is
structured thus (ignoring the endian alternative form):
typedef struct {
int pad : 2;
unsigned int domain : 8;
unsigned int cluster : 12;
unsigned int item : 10;
} __pmID_int;
So the
domain field
must be used to encode the domain of the PMDA providing the dynamic names,
but unfortunately there are no values for
cluster and/or
item that could
be used to mark the node as the root of a subtree of dynamic names.
By good fortune we have spare bits hiding in the
pad field,
so the proposal is to extend the
__pmID_int
struct to allocate
one of the bits from
pad
to the new field
dynamic,
as follows:
typedef struct {
unsigned int dynamic : 1;
int pad : 1;
unsigned int domain : 8;
unsigned int cluster : 12;
unsigned int item : 10;
} __pmID_int;
A value of 1 for
dynamic
encodes the fact that
this PMNS node is the root of a dynamic subtree.
Leaving
pad
between
domain
and
dynamic
would allow the
domain field of
a PMID to expand to 9 bits if that becomes necessary at some point in the
future.
This change does make a dynamic PMID negative when treated as a 32-bit integer
but this should not be a problem as code of the form:
if (pmid < 0) ...
is just plain wrong, and should probably be
if (pmid == PMID_NULL) ...
Internally, the PMID for a node at the base of a dynamic subtree would
be encoded as 1::4095:1023, i.e. the
pad
field set to 1 and
all ones in the
cluster
and
item
fields to minimize the chance of any "false"
matching.
Changes for pmlogger and PCP Archives
No changes are needed here as pmlogger tolerates missing metrics
and only adds PMNS and metadata information into the PCP archives for those
metrics that can be found, so the PMID for the the root of a subtree of dynamic
names will never appear in an archive, although the descendent nodes (with
their associated names and PMIDs) may appear in an archive.
Changes for libpcp_pmda
To support the additional interactions between pmcd and the
PMDAs the
pmdaInterface
structure needs to be extended. This will be
PMDA_INTERFACE_4,
and involves
adding
struct { } three;
to the union, with all of the fields from
struct { } two;
plus the following:
int (*pmns_pmid)(char *, pmID *);
int (*pmns_name)(pmID, char **);
int (*pmns_children)(char *, char ***, int **);
The standard implementation of these routines should suffice for the
majority of cases, but they are exposed in the interface to allow an
over-riding implementation should that be necessary (this also makes them
consistent with all other PDU handling routines in the PMDA library).
Changes for libpcp
The table below describes the changes that are needed in various libpcp
routines that are used once a PMNS is loaded (for simplicity we've
omitted the asynchronous versions of these synchronous routines, but
the same semantics would apply to the asynchronous versions).
| libpcp Routine |
PMNS_LOCAL |
PMNS_REMOTE |
| pmLookupName |
If namelist[i] prefix matches the path to a dynamic node in the PMNS,
then pmidlist[i] is set to a dynamic PMID (with the
domain
domain of the PMDA from the root of the dynamic subtree,
the
cluster
and
item
serial
fields are set to all ones and the
dynamic
field set to
1) and pmLookupName() returns success.
So foo.count would return PM_ERR_NONLEAF (this is a special
case that needs to be checked for), while
foo.count.ops and foo.count.anything.else would both return
the PMID 1:44:4095:1023.
|
Ship to pmcd, where pmLookupName() is called as in the PMNS_LOCAL case.
Scan the
resulting pmidlist[] and if a dynamic PMID is found and if the
associated PMDA is using PMDA_INTERFACE_4
ship the original metric name
to the matching PMDA and use the PMID and status that is returned
from the pmns_pmid() method,
otherwise do nothing.
So foo.count would return PM_ERR_NONLEAF,
foo.count.ops would return PMID 0:44:1:0 and
foo.count.anything.else would PM_ERR_NAME.
|
| pmNameID |
Nothing really special is required. Any PMID that could be
associated with dynamic names will fail to match in the PMNS and
PM_ERR_PMID will be returned.
If the PMID has the
dynamic
field set to 1, then it might be possible to find and return the name
at the root of a dynamic subtree (e.g. foo.count for PMID 1:44:4095:1023), but
since this is potentially ambiguous and of no apparent use,
PM_ERR_PMID will be returned in this case also.
|
Ship to pmcd, where pmNameID() is called as in the PMNS_LOCAL case.
If PM_ERR_PMID is returned, then some extra processing is required.
If PMID has the
dynamic
field set to 1 or the associated PMDA (from the
domain
field of the PMID) is not using PMDA_INTERFACE_4 then return PM_ERR_PMID as this cannot match any valid metric.
If the
domain
field in the PMID matches any node in the PMNS that is the
root of a dynamic subtree then
ship the original PMID
to the matching PMDA where the pmns_name() method is called and use the metric name and status that is returned.
|
| pmNameAll |
Same handling as for pmNameID(). |
Same handling as for pmNameID(). |
| pmGetChildren |
If name matches the path to a dynamic node in the PMNS then return
zero (no descendents), otherwise there is no change in behaviour.
So the descendents of foo will be version, count
and memory, but there are no descendents of foo.count.
|
Ship to pmcd, where pmGetChildren() is called as in the PMNS_LOCAL case.
If there are no descendents of name, and name is the root of a dynamic
subtree in the PMNS, and the associated PMDA (from the
domain
field of the matching PMID) is using PMDA_INTERFACE_4 then ship
the original name
to the matching PMDA where the pmns_children() method is called
and use the list of offspring and status that
is returned. Otherwise (not PMDA_INTERFACE_4 or no matching PMDA) if name is the root of a dynamic subtree in the PMNS then it is skipped.
So, for example calling pmGetChildren with foo as the
name argument will return
foo.version,
foo.count.ops,
foo.count.errs,
foo.count.numcount and
foo.memory.
|
| pmGetChildrenStatus |
Similar handling as for pmGetChildren(),
except that the status for a descendent node that is itself the root
of a dynamic subtree in the PMNS is set to PMNS_NONLEAF_STATUS.
|
Similar handling as for pmGetChildren(), except the status
may also be returned from the PMDA if pmcd ships the request
to a PMDA.
|
| pmTraversePMNS |
Any node
that is at the root of a dynamic subtree of the PMNS is never returned
to the dometric() method.
|
Ship to pmcd, where pmTraversePMNS() is called as in the PMNS_LOCAL case, however whenever a node is encountered that is the root of
a dynamic subtree in the PMNS (i.e.
the matching PMID has the
dynamic
field set to 1 and the associated PMDA (from the
domain
field of the PMID) is using PMDA_INTERFACE_4)
then the path is shipped to the associated PMDA
where the pmns_children() method is called
and all of the decendent
names are returned to pmcd which inserts these into the list of
names to be returned to the caller for subsequent callbacks to the
dometric() method.
|
| pmLoadNameSpace |
Parser changes as noted above, e.g. for 44:*:*.
Do not check for duplicate PMIDs in the case of a node that
is the root of a dynamic subtree, as there could be more than one
dynamic subtree associated with the same PMDA. |
Not relevant. |
A small change is needed in pmIDStr() to detect a dynamic PMID
(checking if the
dynamic
field is 1), and then output an asterisk in place of the numeric
cluster
and
item
fields.
Some Limitations
The "dynamic" nature of the PMNS only applies to the PMNS at the time
it is explored. For most monitoring tools this is at start up (typically after a configuration file has been read), so any changes to the PMNS after that point in time will not be noticed. Specifically this means:
-
pmchart explores the PMNS each time a new plot is added, so metrics
missing at the time a view is populated are dropped with a warning, but the
metric selector is re-populated each time it is launched
-
pmlogger will only log those metrics defined at the time it
is started
-
pmie will return "unknown" as the value of any expression
involving metrics not defined at the time it is started
-
pmdumptext will only report on those metrics defined at the time it
is started
-
pmval reports an error and exits if the metric name is not defined at the time it
is started
This behaviour is no different to other existing interactions, e.g. when a PMDA is installed or
removed, so is not a new issue.
--=-pDyEAhgojv6YkbR8VKrp--
From goodwinos@gmail.com Wed Jul 8 20:03:34 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6913Xk9259554
for ; Wed, 8 Jul 2009 20:03:33 -0500
X-ASG-Debug-ID: 1247101867-0a7e00270000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 6B6E0A0B72F
for ; Wed, 8 Jul 2009 18:11:07 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id hHPyTcJNbXb5BIso for ; Wed, 08 Jul 2009 18:11:07 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n69142rW032238;
Wed, 8 Jul 2009 21:04:02 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n69141hs001223;
Wed, 8 Jul 2009 21:04:02 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6913xXe025295;
Wed, 8 Jul 2009 21:04:00 -0400
Message-ID: <4A5541FE.9090905@gmail.com>
Date: Thu, 09 Jul 2009 11:03:58 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: kenj@internode.on.net
CC: pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
References: <1247041911.7833.4.camel@bozo>
In-Reply-To: <1247041911.7833.4.camel@bozo>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247101869
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0028 1.0000 -2.0030
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.00
X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2907
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Looks like a decent well thought out proposal. I'm just wondering
whether you've captured all the scenarios that might break by the
introduction of non-leaf nodes that have a pmID?
Since we'll be introducing a pmns syntax change for the new
dynamic non-leaf nodes, do we know of any scripts that interpret
the ascii pmns syntax directly, or apps that will not be expecting
'*' from pmIDStr()?
And having a 'pad' field in the middle of a structure seems kind
of funky, but I can see the reasoning for wanting it there. Maybe
just use up the two existing pad bits and call it 'flags'? (with
room for three more flag values in the future, one of which could
be to flag an extended range of domain values).
Cheers
-- Mark
Ken McDonell wrote:
> I've been threatening to get this out for sometime now.
>
> There is no code to back any of this up (yet), it really is a
> proposal ... so please let me know if you think this is a good or bad
> idea, and holes being picked in the issues covered would be most
> welcome, as would better ideas.
>
> The motivation here is to get pmcd out of the way for cases where it is
> the PMDA that knows what metrics are available, not the PMNS loaded by
> pmcd, e.g. an mmv-like PMDA where the available metrics are discovered
> from mmap'd files when the PMDA starts.
>
>
> ------------------------------------------------------------------------
>
>
> Proposal for Supporting Dynamic PCP Performance Metric Namespaces
>
> Ken McDonell
> kenj@internode.on.net
>
> Initially in PCP, the Performance Metrics Namespace (PMNS) was local to
> each machine where PCP was being used. This made it difficult to
> co-ordinate the PMNS versions on multiple monitoring machines with the
> PMDAs installed on the collector machines and was quickly identified as
> a weakness and replaced by the "Distributed PMNS" we have today where
> the PMNS is maintained on the PCP collector machine or within the PCP
> archive. Monitoring applications ship their namespace requests to the
> relevant source of metrics, namely a /pmcd/ or a PCP archive.
>
> Aside from the rare use of a local PMNS (with the *–n* option) by PCP
> monitoring applications, the principal use of the PMNS is to be loaded
> (or reloaded) by /pmcd/ and then used by /pmcd/ to respond directly to
> remote requests from PCP monitoring applications using /pmLookupName()/
> (or the asynchronous equivalent pair /pmRequestNames()/ and
> /pmReceiveNames()/), /pmNameID()/ (or the asynchronous equivalent pair
> /pmRequestNameID()/ and /pmRecieveNameID()/), /pmNameAll()/ (or the
> asynchronous equivalent pair /pmRequestNameAll()/ and
> /pmReceiveNameAll()/ — although the former is defined, _documented but
> not implemented_!), /pmGetChildren()/, /pmGetChildrenStatus()/ (or the
> asynchronous equivalent pair /pmRequestNamesOfChildern()/ and
> /pmReceiveNamesOfChildren()/) and /pmTraversePMNS()/ (or the
> asynchronous equivalent pair /pmRequestTraversePMNS()/ and
> /pmReceiveTraversePMNS()/).
>
> The PMNS on a collector machine is maintained as a single file with
> entries added and deleted as a part of the installation and removal of a
> PMDA.
>
> While this regime has served PCP well for most PMDAs, there have been a
> small number of cases where the static nature of the PMNS has not been
> appropriate, e.g.
>
> * PCP's one-dimensional instance domain data model imposes the need
> for remapping when data naturally occurs across more than one
> dimension, e.g. histogram bins of service times for a set of
> similar operation types. This is usually addressed by either
> linearizing the instance domain and constructing composite
> instance names, or mapping one of the dimensions onto the PMNS.
> When both dimensions are variable this can become quite messy.
>
> All of the DBMS PMDAs had issues in this area.
>
> * Some PMDAs are data-driven, e.g. the memory mapped class of PMDAs,
> and for these the names of available metrics maybe "discovered"
> when the memory mapped files are opened and so cannot be part of
> the PMDA's PMNS at the time the PMDA is installed.
>
> Existing methods for handling a dynamic aspect of the PMNS are all
> *ugly* and error-prone, e.g. make a new PMNS, update the global PMNS and
> sent /pmcd/ a SIGHUP signal.
>
>
> Proposal Overview
>
> The existing PMNS will be extended (no backwards compatibility issues)
> to introduce a new "non-terminal" node that will be used to indicate
> that the PMNS below this point is dynamic and defined by the associated
> PMDA.
>
> As an example to be used throughout this proposal, the *foo* PMDA
> (domain 44) supports dynamic names below the *foo.count* node in the
> PMNS. The relevant fragment of the ASCII PMNS would be as follows:
>
> root {
> ...
> foo
> ...
> }
> ...
> foo {
> version 44:0:1
> count 44:*:*
> memory 44:0:2
> }
>
> The *foo* PMDA is willing to export metadata and metric values for the
> following additional (dynamic) metrics:
> *foo.count.ops* (PMID 44:1:0)
> *foo.count.errs* (PMID 44:1:1)
> *foo.count.numcount* (PMID 44:0:27)
>
> Changes to /pmcd/ and new interactions with the *foo* PMDA would mean
> that attempts to look up the PMIDs for metrics with names beginning
> *foo.count.* would be passed from /pmcd/ to the *foo* PMDA, and
> similarly requests to find the names of metrics given their PMID would
> also be passed from /pmcd/ to the *foo* PMDA if they are not resolved in
> the PMNS loaded into /pmcd/.
>
>
> Detailed Changes Required
>
>
> Changes to the ASCII PMNS Format
>
> As forshadowed, the syntax :*:* after a domain number would flag a PMNS
> node as the root of a subtree of names to be resolved in the associated
> PMDA.
>
> The only place where the ASCII PMNS format is known at this level of
> detail is in the internal routine /loadascii()/ of /libpcp/ which is
> called from /pmLoadNameSpace()/, /pmLoadASCIINameSpace()/ and
> /pmGetPMNSLocation()/. So extending the parser here is simple.
>
>
> Changes to the Binary PMNS Format
>
> The binary format of the PMNS is what is loaded into the address space
> after the ASCII PMNS has been parsed (it is also the format generated by
> /pmnscomp/ and read by the /libpcp/ routines, but this is just a
> performance short cut — /pmnscomp/ will need almost no change as it
> simply writes out the binary PMNS after it has been loaded).
>
> The relevant data structure is __pmnsNode (defined in ). Now
> this structure is sufficiently public that we cannot change it in any
> way that would break binary compatibility, and the only field avalable
> to encode *both* the PMDA's domain number and the dynamic nature of the
> node in the PMNS is the pmid field. Internally a pmid is structured thus
> (ignoring the endian alternative form):
>
> typedef struct {
> int pad : 2;
> unsigned int domain : 8;
> unsigned int cluster : 12;
> unsigned int item : 10;
> } __pmID_int;
>
> So the domain field must be used to encode the domain of the PMDA
> providing the dynamic names, but unfortunately there are no values for
> cluster and/or item that could be used to mark the node as the root of a
> subtree of dynamic names. By good fortune we have spare bits hiding in
> the pad field, so the proposal is to extend the __pmID_int struct to
> allocate one of the bits from pad to the new field dynamic, as follows:
>
> typedef struct {
> unsigned int dynamic : 1;
> int pad : 1;
> unsigned int domain : 8;
> unsigned int cluster : 12;
> unsigned int item : 10;
> } __pmID_int;
>
> A value of 1 for dynamic encodes the fact that this PMNS node is the
> root of a dynamic subtree. Leaving pad between domain and dynamic would
> allow the domain field of a PMID to expand to 9 bits if that becomes
> necessary at some point in the future. This change does make a dynamic
> PMID negative when treated as a 32-bit integer but this should not be a
> problem as code of the form:
>
> if (pmid < 0) ...
>
> is just plain wrong, and should probably be
>
> if (pmid == PMID_NULL) ...
>
> Internally, the PMID for a node at the base of a dynamic subtree would
> be encoded as 1::4095:1023, i.e. the pad field set to 1 and all ones in
> the cluster and item fields to minimize the chance of any "false" matching.
>
>
> Changes for /pmlogger/ and PCP Archives
>
> No changes are needed here as /pmlogger/ tolerates missing metrics and
> only adds PMNS and metadata information into the PCP archives for those
> metrics that can be found, so the PMID for the the root of a subtree of
> dynamic names will never appear in an archive, although the descendent
> nodes (with their associated names and PMIDs) may appear in an archive.
>
>
> Changes for /libpcp_pmda/
>
> To support the additional interactions between /pmcd/ and the PMDAs the
> pmdaInterface structure needs to be extended. This will be
> PMDA_INTERFACE_4, and involves adding struct { } three; to the union,
> with all of the fields from struct { } two; plus the following:
>
> int (*pmns_pmid)(char *, pmID *);
> int (*pmns_name)(pmID, char **);
> int (*pmns_children)(char *, char ***, int **);
>
> The standard implementation of these routines should suffice for the
> majority of cases, but they are exposed in the interface to allow an
> over-riding implementation should that be necessary (this also makes
> them consistent with all other PDU handling routines in the PMDA library).
>
>
> Changes for /libpcp/
>
> The table below describes the changes that are needed in various
> /libpcp/ routines that are used once a PMNS is loaded (for simplicity
> we've omitted the asynchronous versions of these synchronous routines,
> but the same semantics would apply to the asynchronous versions).
>
> libpcp Routine PMNS_LOCAL PMNS_REMOTE
> pmLookupName If namelist[i] prefix matches the path to a dynamic node
> in the PMNS, then pmidlist[i] is set to a dynamic PMID (with the domain
> domain of the PMDA from the root of the dynamic subtree, the cluster and
> item serial fields are set to all ones and the dynamic field set to 1)
> and /pmLookupName()/ returns success. So *foo.count* would return
> PM_ERR_NONLEAF (this is a special case that needs to be checked for),
> while *foo.count.ops* and *foo.count.anything.else* would both return
> the PMID 1:44:4095:1023. Ship to /pmcd/, where /pmLookupName()/ is
> called as in the PMNS_LOCAL case. Scan the resulting pmidlist[] and if a
> dynamic PMID is found and if the associated PMDA is using
> PMDA_INTERFACE_4 ship the original metric name to the matching PMDA and
> use the PMID and status that is returned from the /pmns_pmid()/ method,
> otherwise do nothing. So *foo.count* would return PM_ERR_NONLEAF,
> *foo.count.ops* would return PMID 0:44:1:0 and *foo.count.anything.else*
> would PM_ERR_NAME.
> pmNameID Nothing really special is required. Any PMID that could be
> associated with dynamic names will fail to match in the PMNS and
> PM_ERR_PMID will be returned. If the PMID has the dynamic field set to
> 1, then it might be possible to find and return the name at the root of
> a dynamic subtree (e.g. *foo.count* for PMID 1:44:4095:1023), but since
> this is potentially ambiguous and of no apparent use, PM_ERR_PMID will
> be returned in this case also. Ship to /pmcd/, where /pmNameID()/ is
> called as in the PMNS_LOCAL case. If PM_ERR_PMID is returned, then some
> extra processing is required. If PMID has the dynamic field set to 1 or
> the associated PMDA (from the domain field of the PMID) is not using
> PMDA_INTERFACE_4 then return PM_ERR_PMID as this cannot match any valid
> metric. If the domain field in the PMID matches *any* node in the PMNS
> that is the root of a dynamic subtree then ship the original PMID to the
> matching PMDA where the /pmns_name()/ method is called and use the
> metric name and status that is returned.
> pmNameAll Same handling as for /pmNameID()/. Same handling as for
> /pmNameID()/.
> pmGetChildren If name matches the path to a dynamic node in the PMNS
> then return zero (no descendents), otherwise there is no change in
> behaviour. So the descendents of *foo* will be *version*, *count* and
> *memory*, but there are no descendents of *foo.count*. Ship to /pmcd/,
> where /pmGetChildren()/ is called as in the PMNS_LOCAL case. If there
> are no descendents of name, and name is the root of a dynamic subtree in
> the PMNS, and the associated PMDA (from the domain field of the matching
> PMID) is using PMDA_INTERFACE_4 then ship the original name to the
> matching PMDA where the /pmns_children()/ method is called and use the
> list of offspring and status that is returned. Otherwise (not
> PMDA_INTERFACE_4 or no matching PMDA) if name is the root of a dynamic
> subtree in the PMNS then it is skipped. So, for example calling
> /pmGetChildren/ with *foo* as the name argument will return
> *foo.version*, *foo.count.ops*, *foo.count.errs*, *foo.count.numcount*
> and *foo.memory*.
> pmGetChildrenStatus Similar handling as for /pmGetChildren()/, except
> that the status for a descendent node that is itself the root of a
> dynamic subtree in the PMNS is set to PMNS_NONLEAF_STATUS. Similar
> handling as for /pmGetChildren()/, except the status may also be
> returned from the PMDA if /pmcd/ ships the request to a PMDA.
> pmTraversePMNS Any node that is at the root of a dynamic subtree of the
> PMNS is never returned to the dometric() method. Ship to /pmcd/, where
> /pmTraversePMNS()/ is called as in the PMNS_LOCAL case, however whenever
> a node is encountered that is the root of a dynamic subtree in the PMNS
> (i.e. the matching PMID has the dynamic field set to 1 and the
> associated PMDA (from the domain field of the PMID) is using
> PMDA_INTERFACE_4) then the path is shipped to the associated PMDA where
> the /pmns_children()/ method is called and all of the decendent names
> are returned to /pmcd/ which inserts these into the list of names to be
> returned to the caller for subsequent callbacks to the dometric() method.
> pmLoadNameSpace Parser changes as noted above, e.g. for 44:*:*. Do not
> check for duplicate PMIDs in the case of a node that is the root of a
> dynamic subtree, as there could be more than one dynamic subtree
> associated with the same PMDA. Not relevant.
>
> A small change is needed in /pmIDStr()/ to detect a dynamic PMID
> (checking if the dynamic field is 1), and then output an asterisk in
> place of the numeric cluster and item fields.
>
>
> Some Limitations
>
> The "dynamic" nature of the PMNS only applies to the PMNS at the time it
> is explored. For most monitoring tools this is at start up (typically
> after a configuration file has been read), so any changes to the PMNS
> after that point in time will not be noticed. Specifically this means:
>
> * /pmchart/ explores the PMNS each time a new plot is added, so
> metrics missing at the time a view is populated are dropped with a
> warning, but the metric selector is re-populated each time it is
> launched
> * /pmlogger/ will only log those metrics defined at the time it is
> started
> * /pmie/ will return "unknown" as the value of any expression
> involving metrics not defined at the time it is started
> * /pmdumptext/ will only report on those metrics defined at the time
> it is started
> * /pmval/ reports an error and exits if the metric name is not
> defined at the time it is started
>
> This behaviour is no different to other existing interactions, e.g. when
> a PMDA is installed or removed, so is not a new issue.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> pcp mailing list
> pcp@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/pcp
From nscott@aconex.com Wed Jul 8 20:20:04 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n691K2fJ260293
for ; Wed, 8 Jul 2009 20:20:04 -0500
X-ASG-Debug-ID: 1247102858-0d5e00e40000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 3D866A0B640
for ; Wed, 8 Jul 2009 18:27:38 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id QUsGU4qr0cuvOWgX for ; Wed, 08 Jul 2009 18:27:38 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP
id BC3FC62A961; Thu, 9 Jul 2009 11:20:35 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id vHivT0dTYK0EHDiK; Thu, 09 Jul 2009 11:20:35 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 0A227A500A6;
Thu, 9 Jul 2009 11:20:04 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id A5C404FD85;
Thu, 9 Jul 2009 11:20:35 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id cdS1BcBnHdiy; Thu, 9 Jul 2009 11:20:30 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id DE6D04FD82;
Thu, 9 Jul 2009 11:20:30 +1000 (EST)
Date: Thu, 9 Jul 2009 11:20:30 +1000 (EST)
From: Nathan Scott
To: kenj@internode.on.net
Cc: pcp@oss.sgi.com
Message-ID: <1004255165.302471247102430882.JavaMail.root@mail-au.aconex.com>
In-Reply-To: <1232315801.302291247102282136.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247102859
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2907
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
----- "Ken McDonell" wrote:
> I've been threatening to get this out for sometime now.
>
> There is no code to back any of this up (yet), it really is a
> proposal ... so please let me know if you think this is a good or bad
> idea, and holes being picked in the issues covered would be most
> welcome, as would better ideas.
Looks pretty good to me. One section that seems to be missing
is "Changes for pmcd", at least for completeness & to give a more
clear description of the PDU exchanges that'd be involved, maybe?
There's a misconception: "...update global PMNS and send pmcd a
SIGHUP signal". I also thought that was how it works, but that's
not what pmdammv actually does. I think that approach is deadlock
prone - the signal to pmcd seems to cause a request to the PMDA (I
can't remember whether I decoded which request that was now), but
the PMDA is blocked in kill(2) and never responds - pmcd ends up
terminating it due to the timeout, and (amusingly) also ends up
restarting it right away cos it gets a SIGHUP! Perhaps Max can
remember more the details of that mystery pmcd->pmda PDU.
What MMV actually does, is send PMCD a PM_ERR_NOTREADY and then a
PM_ERR_READY pair of error PDUs (see callers of mmv_reload_maybe).
The code in src/pmcd/src/pmcd.c HandleReadyAgents() returns "true"
when the READY PDU comes in and pmcd reloads the namespace (pmcd.c
around line 848).
So, one *big* problem with this approach (in addition to the "ugly,
error prone" rationale you have already) is that the NOTREADY gets
sent back to _clients_ too. Which means that whenever an agent is
reconfigured, even if that reconfiguration has nothing to do with
the (mmv) request/pmid in question, we end up seeing errors on the
client (which confuses pmie rules, which may send spurious and bad
status out, and means pmlogger gets no data for that sample - which
is annoying if the change had nothing to do with that particular
request).
cheers.
--
Nathan
From nscott@aconex.com Wed Jul 8 20:29:48 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n691TmHk260683
for ; Wed, 8 Jul 2009 20:29:48 -0500
X-ASG-Debug-ID: 1247103021-0b6f01b00000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 95F88350669
for ; Wed, 8 Jul 2009 18:30:22 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id XdgMSIe2OjgkzzPC for ; Wed, 08 Jul 2009 18:30:22 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP
id 77D1862A5F9; Thu, 9 Jul 2009 11:30:14 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id Lt5Ak1qnfaKWrmtA; Thu, 09 Jul 2009 11:30:14 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id A1440A503EC;
Thu, 9 Jul 2009 11:29:42 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 486514FD85;
Thu, 9 Jul 2009 11:30:14 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id ARsAbem7TXYf; Thu, 9 Jul 2009 11:30:13 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 4DD594FD84;
Thu, 9 Jul 2009 11:30:13 +1000 (EST)
Date: Thu, 9 Jul 2009 11:30:13 +1000 (EST)
From: Nathan Scott
To: Mark Goodwin , kenj
Cc: pcp@oss.sgi.com
Message-ID: <144401009.303101247103013280.JavaMail.root@mail-au.aconex.com>
In-Reply-To: <4A5541FE.9090905@gmail.com>
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247103024
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0028 1.0000 -2.0030
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.00
X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2908
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
----- "Mark Goodwin" wrote:
> Looks like a decent well thought out proposal. I'm just wondering
> whether you've captured all the scenarios that might break by the
> introduction of non-leaf nodes that have a pmID?
>
> Since we'll be introducing a pmns syntax change for the new
> dynamic non-leaf nodes, do we know of any scripts that interpret
> the ascii pmns syntax directly,
I can't think of any FWIW.
> or apps that will not be expecting '*' from pmIDStr()?
That'd well be worth an audit.
> And having a 'pad' field in the middle of a structure seems kind
> of funky, but I can see the reasoning for wanting it there. Maybe
> just use up the two existing pad bits and call it 'flags'? (with
> room for three more flag values in the future, one of which could
> be to flag an extended range of domain values).
Hmm, I'd be more inclined to extend "domain" now - we've used up
more than half the available domain numbers already, so this seems
like the most useful way to use that bit IMO (256 numbers looks a
tad small to me, nowadays, whereas 512 would buy alot of headroom).
cheers.
--
Nathan
From goodwinos@gmail.com Thu Jul 9 03:01:15 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6981Eub016090
for ; Thu, 9 Jul 2009 03:01:15 -0500
X-ASG-Debug-ID: 1247126931-242903c90000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id DFA2B129CCC7
for ; Thu, 9 Jul 2009 01:08:51 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id DYaWWFcK5t7XTYS7 for ; Thu, 09 Jul 2009 01:08:51 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6981nO5006190
for ; Thu, 9 Jul 2009 04:01:49 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6981d6D020913;
Thu, 9 Jul 2009 04:01:39 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6981ano022521;
Thu, 9 Jul 2009 04:01:37 -0400
Message-ID: <4A55A3E0.5090602@gmail.com>
Date: Thu, 09 Jul 2009 18:01:36 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: pcp@oss.sgi.com
CC: mgoodwin@redhat.com
X-ASG-Orig-Subj: [pcp] pcp updates (3.0.0)
Subject: [pcp] pcp updates (3.0.0)
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247126932
X-Barracuda-Bayes: INNOCENT GLOBAL 0.1358 1.0000 -1.1820
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.18
X-Barracuda-Spam-Status: No, SCORE=-1.18 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2934
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/markgw/pcp/pcp.git in branch '3.0.0'
commit 728c61eb0aa0ebe9bf3b4096696adfc5b14abf39
Author: Mark Goodwin
Date: Thu Jul 9 17:33:12 2009 +1000
split RPM packaging into pcp, pcp-libs and pcp-devel, bump version to 3.0.0
The above commit is in the 3.0.0 branch (in my tree above) for review.
I'm interested in (a) objections to splitting the packaging at all,
and (b) any issues, especially Martin's internal SGI builds.
Dependencies: both pcp and pcp-devel require pcp-libs, but can be
installed independently if needed.
Running Makepkgs in the 3.0.0 branch (on FC10) will build e.g. the following :
Wrote: /home/mgoodwin/src/pcp/build/tar/pcp-3.0.0-1.tar.gz
Wrote: /home/mgoodwin/src/pcp/build/rpm/pcp-3.0.0-1.src.rpm
Wrote: /home/mgoodwin/src/pcp/build/rpm/pcp-3.0.0-1.x86_64.rpm
Wrote: /home/mgoodwin/src/pcp/build/rpm/pcp-libs-3.0.0-1.x86_64.rpm
Wrote: /home/mgoodwin/src/pcp/build/rpm/pcp-devel-3.0.0-1.x86_64.rpm
Wrote: /home/mgoodwin/src/pcp/build/rpm/pcp-debuginfo-3.0.0-1.x86_64.rpm
Cheers
-- Mark
From mort@bork.org Thu Jul 9 07:25:27 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69CPQrK027297
for ; Thu, 9 Jul 2009 07:25:27 -0500
X-ASG-Debug-ID: 1247142784-38c1033e0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from darwin.bork.org (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 25337149BA44
for ; Thu, 9 Jul 2009 05:33:05 -0700 (PDT)
Received: from darwin.bork.org (darwin.bork.org [65.49.60.145]) by cuda.sgi.com with ESMTP id q1e08Baf2Ldj18Hv for ; Thu, 09 Jul 2009 05:33:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
by darwin.bork.org (Postfix) with ESMTP id 0C593193C0;
Thu, 9 Jul 2009 08:22:35 -0400 (EDT)
Received: from darwin.bork.org ([127.0.0.1])
by localhost (darwin.bork.org [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id HGcodJXF7sOx; Thu, 9 Jul 2009 08:22:34 -0400 (EDT)
Received: from laplace.bork.org (laplace.bork.org [IPv6:2001:470:1f11:499:21a:a0ff:feec:57ab])
by darwin.bork.org (Postfix) with ESMTP id A3C0C1934E;
Thu, 9 Jul 2009 08:22:34 -0400 (EDT)
Received: by laplace.bork.org (Postfix, from userid 1000)
id 5556A536E4; Thu, 9 Jul 2009 08:25:59 -0400 (EDT)
Date: Thu, 9 Jul 2009 08:25:58 -0400
From: Martin Hicks
To: Nathan Scott
Cc: Mark Goodwin , kenj ,
pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Message-ID: <20090709122558.GB5068@laplace.bork.org>
References: <4A5541FE.9090905@gmail.com> <144401009.303101247103013280.JavaMail.root@mail-au.aconex.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <144401009.303101247103013280.JavaMail.root@mail-au.aconex.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
X-Barracuda-Connect: darwin.bork.org[65.49.60.145]
X-Barracuda-Start-Time: 1247142786
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2950
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
On Thu, Jul 09, 2009 at 11:30:13AM +1000, Nathan Scott wrote:
>
> > And having a 'pad' field in the middle of a structure seems kind
> > of funky, but I can see the reasoning for wanting it there. Maybe
> > just use up the two existing pad bits and call it 'flags'? (with
> > room for three more flag values in the future, one of which could
> > be to flag an extended range of domain values).
>
> Hmm, I'd be more inclined to extend "domain" now - we've used up
> more than half the available domain numbers already, so this seems
> like the most useful way to use that bit IMO (256 numbers looks a
> tad small to me, nowadays, whereas 512 would buy alot of headroom).
Yeah, I agree with this. We might as well take this step now to leave
plenty of room for growth.
mh
--
Martin Hicks || mort@bork.org || PGP/GnuPG: 0x4C7F2BEE
From daw@sgi.com Thu Jul 9 08:45:19 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69DjJPB030939
for ; Thu, 9 Jul 2009 08:45:19 -0500
Received: from zion.americas.sgi.com (zion.americas.sgi.com [128.162.236.17])
by relay3.corp.sgi.com (Postfix) with ESMTP id 356A1AC002
for ; Thu, 9 Jul 2009 06:45:52 -0700 (PDT)
Received: (from daw@localhost) by zion.americas.sgi.com (8.12.9/ASC-news-1.4) id n69DjpZF30129686 for pcp@oss.sgi.com; Thu, 9 Jul 2009 08:45:51 -0500 (CDT)
Message-Id: <200907091345.n69DjpZF30129686@zion.americas.sgi.com>
Subject: How to get zero origin on mem/swap
To: pcp@oss.sgi.com
Date: Thu, 9 Jul 2009 08:45:51 -0500 (CDT)
In-Reply-To: from "pcp-request@oss.sgi.com" at Jul 09, 2009 03:01:33 AM
From: David Wright
X-Mailer: ELM [version 2.5 PL2]
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Hello all,
How do I get a swap utilization or memory utilization stack chart
for example, have a zero origin and still autoscale? I dont
want to go to utilization as I want the memory size numbers of
slab/cache/anon etc?
Thanks,
Dave Wright
From kenj@internode.on.net Thu Jul 9 17:55:20 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69MtJou057906
for ; Thu, 9 Jul 2009 17:55:20 -0500
X-ASG-Debug-ID: 1247180154-14cb03140000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail.internode.on.net (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 98B7435478B
for ; Thu, 9 Jul 2009 15:55:54 -0700 (PDT)
Received: from mail.internode.on.net (bld-mail18.adl2.internode.on.net [150.101.137.103]) by cuda.sgi.com with ESMTP id ol0aQB8VwXn9XkkM for ; Thu, 09 Jul 2009 15:55:54 -0700 (PDT)
Received: from [192.168.1.100] (unverified [118.208.165.112])
by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 2114646-1927428
for ; Fri, 10 Jul 2009 08:25:52 +0930 (CST)
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
From: Ken McDonell
Reply-To: kenj@internode.on.net
To: pcp@oss.sgi.com
In-Reply-To: <1004255165.302471247102430882.JavaMail.root@mail-au.aconex.com>
References: <1004255165.302471247102430882.JavaMail.root@mail-au.aconex.com>
Content-Type: text/plain
Date: Fri, 10 Jul 2009 08:54:19 +1000
Message-Id: <1247180059.7833.257.camel@bozo>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.1
Content-Transfer-Encoding: 7bit
X-Barracuda-Connect: bld-mail18.adl2.internode.on.net[150.101.137.103]
X-Barracuda-Start-Time: 1247180155
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0046 1.0000 -1.9911
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.99
X-Barracuda-Spam-Status: No, SCORE=-1.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2986
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Thanks for the feedback.
On Thu, 2009-07-09 at 11:20 +1000, Nathan Scott wrote:
> Looks pretty good to me. One section that seems to be missing
> is "Changes for pmcd", at least for completeness & to give a more
> clear description of the PDU exchanges that'd be involved, maybe?
I could have done a better job of separating what the libpcp caller will
see and what happens behind the scenes in the PMNS_REMOTE case. In
particular extra code is needed in pmcd to use the existing PDU routines
to send the requests to daemon PMDAs and then the am I PMDA_INTERFACE_4
question has to be handled in libpcp_pmda for the PMDA. For DSO PMDAs
the type of the PMDA is known immediately and the additional methods are
called without any PDUs.
Provided the intent is clear and there is no major problem with the
approach I might spend time on implementing rather than tweaking the
design document.
The dameon case does raise a problem I'd not considered. If the PMDA is
linked with libpcp_pmda, then all is well. But there are the Perl PMDAS
(news, kvm, dbping, zimbra, netfilter, bonding, systemtap, vmware,
memcache, oracle, mysql) - Nathan, what needs to happen here as the perl
pmda support seems to be using libpcp_pmda and PMDA_INTERFACE_LATEST? -
nothing bad will happen in the short term as there are no dynamic pmns
nodes associated with the domains for these pmdas, but it is a corner
case where a bogus pmns entry could bring the pmda down unless the perl
pmda support traps and returns something sensible, or stays with
PMDA_INTERFACE_3.
> There's a misconception: "...update global PMNS and send pmcd a
> SIGHUP signal". I also thought that was how it works, but that's
> not what pmdammv actually does.
Indeed this seems to have acquired the status of an urban myth ... there
is no PMDA (not even the old oracle PMDA) that does this, so it must
have been "if you need to do this, this is the only way to make it
work".
I think if a dynamic PMNS works as I plan, then mmv could use this
rather than the NOTREADY-READY approach.
On Thu, 2009-07-09 at 11:03 +1000, Mark Goodwin wrote:
> Looks like a decent well thought out proposal. I'm just wondering
> whether you've captured all the scenarios that might break by the
> introduction of non-leaf nodes that have a pmID?
I think this will be OK. The PMNS node at the root of a dynamic subtree
does have a PMID for the PMNS_LOCAL cases. Fortunately there are only a
small number of operation types on the PMNS, so I'd be surprised if
there was another corner case ... but the implementation and QA shake
down will probably tell another story ... 8^)>
> Since we'll be introducing a pmns syntax change for the new
> dynamic non-leaf nodes, do we know of any scripts that interpret
> the ascii pmns syntax directly, or apps that will not be expecting
> '*' from pmIDStr()?
Good point, hadn't thought of that.
* pmnsadd hands all the parsing to pmnsmerge (a C program that
uses pmLoadASCIINameSpace()
* pmnsdel is a C program that uses pmLoadASCIINameSpace()
* pmdaproc.sh uses pmnsadd and pmnsdel
* genpmda creates a pmns subtree but does not parse the existing
pmns
* Rebuild parses only names (not PMIDs) and then uses pmnsmerge
* ReplacePmnsSubtree uses pmnsadd and pmnsdel
* pmdaproc.sh uses pmnsadd and pmnsdel
* clusterns.pl this one makes me nervous ... I am not sure what it
is doing, but this fragment ... ($rawcluster !~ /^[0-9]+$/) and
die "PMID cluster is not numeric in node '$_'\n"; .... may be a
problem if it is handling pmns nodes for other than the cluster
PMDA at this point ... Mark could you please check this one?
* hotproc/fixpmns.awk generates pmns nodes but does parse the
existing pmns
This did show up one other thing, the static routine output() in
src/pmns/pmnsutil.c needs to be able to _generate_ the *:* format PMID
for a node that is the root of a dynamic subtree ... and it is not
currently using pmIDStr() (sigh!).
> And having a 'pad' field in the middle of a structure seems kind
> of funky, but I can see the reasoning for wanting it there. Maybe
> just use up the two existing pad bits and call it 'flags'? (with
> room for three more flag values in the future, one of which could
> be to flag an extended range of domain values).
There seems to be support for moving to 9 bits of domain and dropping
the pad ... I happy to do that and include it in the QA validation for
the other pmns changes.
From nscott@aconex.com Thu Jul 9 19:40:42 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A0efwp062708
for ; Thu, 9 Jul 2009 19:40:41 -0500
X-ASG-Debug-ID: 1247186000-234a00050000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 5A82D354925
for ; Thu, 9 Jul 2009 17:33:20 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id KKcczZUmyUHudy7E for ; Thu, 09 Jul 2009 17:33:20 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP
id 65AF27C0D43; Fri, 10 Jul 2009 10:33:18 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id 0TX9jNPelNegBSx4; Fri, 10 Jul 2009 10:33:18 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 2A32CA501BC;
Fri, 10 Jul 2009 10:32:46 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 4D76C4FD82;
Fri, 10 Jul 2009 10:33:18 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 1w7ARHfIZCkN; Fri, 10 Jul 2009 10:33:13 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 8B4B34FD84;
Fri, 10 Jul 2009 10:33:13 +1000 (EST)
Date: Fri, 10 Jul 2009 10:33:13 +1000 (EST)
From: Nathan Scott
To: kenj@internode.on.net
Cc: pcp@oss.sgi.com
Message-ID: <165368247.370551247185993455.JavaMail.root@mail-au.aconex.com>
In-Reply-To: <1247180059.7833.257.camel@bozo>
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247186002
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0177 1.0000 -1.9055
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.91
X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2992
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
----- "Ken McDonell" wrote:
> (news, kvm, dbping, zimbra, netfilter, bonding, systemtap, vmware,
> memcache, oracle, mysql) - Nathan, what needs to happen here as the
> perl
> pmda support seems to be using libpcp_pmda and PMDA_INTERFACE_LATEST?
That should be PMDA_INTERFACE_3, yeah, until such time as support
for the new callbacks is added to the Perl API. I''l fix that up.
> I think if a dynamic PMNS works as I plan, then mmv could use this
> rather than the NOTREADY-READY approach.
Yep, that'd be good.
> > And having a 'pad' field in the middle of a structure seems kind
> > of funky, but I can see the reasoning for wanting it there. Maybe
> > just use up the two existing pad bits and call it 'flags'? (with
> > room for three more flag values in the future, one of which could
> > be to flag an extended range of domain values).
>
> There seems to be support for moving to 9 bits of domain and dropping
> the pad ... I happy to do that and include it in the QA validation
> for the other pmns changes.
+1 vote from me there.
cheers.
--
Nathan
From nscott@aconex.com Thu Jul 9 19:43:10 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A0hA6O062848
for ; Thu, 9 Jul 2009 19:43:10 -0500
X-ASG-Debug-ID: 1247186624-3bbc00900000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 8979013414BF
for ; Thu, 9 Jul 2009 17:43:45 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id BG7MsYRoANhszVps for ; Thu, 09 Jul 2009 17:43:45 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP id 295FC13D92A
for ; Fri, 10 Jul 2009 10:43:44 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id PP31HDiqb7FIeqav for ; Fri, 10 Jul 2009 10:43:44 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id DE1CDA503E9
for ; Fri, 10 Jul 2009 10:43:11 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 161024FD82
for ; Fri, 10 Jul 2009 10:43:44 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 7tqi8ug6GJ9c for ;
Fri, 10 Jul 2009 10:43:40 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 4762E4FD84
for ; Fri, 10 Jul 2009 10:43:40 +1000 (EST)
Date: Fri, 10 Jul 2009 10:43:40 +1000 (EST)
From: Nathan Scott
To: pcp
Message-ID: <1280210987.370991247186620237.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates
Subject: pcp updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247186626
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2992
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/nathans/pcp.git
src/cpan/PMDA/PMDA.xs | 2 +-
src/pmcd/pmdaproc.sh | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
commit 3a0217c80b84c56d21bdd64f9d6396c9c583556d
Author: Nathan Scott
Date: Fri Jul 10 10:37:08 2009 +1000
Add a PCP::PMDA module check into PMDA Install path for Perl PMDAs.
commit 2c278354dedbb229721ffbb6cd1934896095c4a7
Author: Nathan Scott
Date: Fri Jul 10 10:35:08 2009 +1000
Make Perl PMDA module explicit wrt libpcp_pmda interface version used.
From nscott@aconex.com Thu Jul 9 19:49:44 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A0niN7063170
for ; Thu, 9 Jul 2009 19:49:44 -0500
X-ASG-Debug-ID: 1247187444-083f02c10000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 5152BA24C2E
for ; Thu, 9 Jul 2009 17:57:24 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id kblN5HImPm8lXvW5 for ; Thu, 09 Jul 2009 17:57:24 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam Firewall) with ESMTP
id 7E94613D256; Fri, 10 Jul 2009 10:50:04 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id cDK9iPwyXl1scpaj; Fri, 10 Jul 2009 10:50:04 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 3BC8DA503E9;
Fri, 10 Jul 2009 10:49:32 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 5EF6E4FD82;
Fri, 10 Jul 2009 10:50:04 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id e7hnnRR5JyI4; Fri, 10 Jul 2009 10:49:59 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 8E5694FD86;
Fri, 10 Jul 2009 10:49:57 +1000 (EST)
Date: Fri, 10 Jul 2009 10:49:57 +1000 (EST)
From: Nathan Scott
To: David Wright
Cc: pcp@oss.sgi.com
Message-ID: <234613316.371221247186997209.JavaMail.root@mail-au.aconex.com>
In-Reply-To: <200907091345.n69DjpZF30129686@zion.americas.sgi.com>
X-ASG-Orig-Subj: Re: [pcp] How to get zero origin on mem/swap
Subject: Re: [pcp] How to get zero origin on mem/swap
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247187446
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0412 1.0000 -1.7552
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.76
X-Barracuda-Spam-Status: No, SCORE=-1.76 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2993
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
----- "David Wright" wrote:
> Hello all,
>
> How do I get a swap utilization or memory utilization stack chart
> for example, have a zero origin and still autoscale? I dont
> want to go to utilization as I want the memory size numbers of
> slab/cache/anon etc?
There's currently no way to specify that behaviour - adding it
would be a "simple matter of programming" though... probably a
checkbox on the new/edit chart dialog, and some code ... might
want to extend the View format too, starts to become alot more
work then though. I'll keep it in mind for the next change to
the format, but you're welcome to hack the code yourself to do
this too, of course (pls send patches if you do)!
cheers.
--
Nathan
From goodwinos@gmail.com Thu Jul 9 19:59:43 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A0xhsq063584
for ; Thu, 9 Jul 2009 19:59:43 -0500
X-ASG-Debug-ID: 1247187619-2da200d70000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP
id E2D4B354A3D; Thu, 9 Jul 2009 18:00:19 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id WkEoKXkQK4mSr4rX; Thu, 09 Jul 2009 18:00:19 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6A10Iv6015753;
Thu, 9 Jul 2009 21:00:18 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6A10HoP025092;
Thu, 9 Jul 2009 21:00:17 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6A10FOx032700;
Thu, 9 Jul 2009 21:00:16 -0400
Message-ID: <4A56929F.3030404@gmail.com>
Date: Fri, 10 Jul 2009 11:00:15 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: David Wright
CC: pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] How to get zero origin on mem/swap
Subject: Re: [pcp] How to get zero origin on mem/swap
References: <200907091345.n69DjpZF30129686@zion.americas.sgi.com>
In-Reply-To: <200907091345.n69DjpZF30129686@zion.americas.sgi.com>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247187619
X-Barracuda-Bayes: INNOCENT GLOBAL 0.4735 1.0000 0.0000
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2994
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
David Wright wrote:
> Hello all,
>
> How do I get a swap utilization or memory utilization stack chart
> for example, have a zero origin and still autoscale? I dont
> want to go to utilization as I want the memory size numbers of
> slab/cache/anon etc?
In the old or new pmchart?
Cheers
-- Mark
From goodwinos@gmail.com Thu Jul 9 21:23:03 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A2N2Rf067548
for ; Thu, 9 Jul 2009 21:23:02 -0500
X-ASG-Debug-ID: 1247193044-312701860000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 1134D109D931
for ; Thu, 9 Jul 2009 19:30:44 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id DQTOzNkOvhqI7D8D for ; Thu, 09 Jul 2009 19:30:44 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6A2NTVG007780;
Thu, 9 Jul 2009 22:23:29 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6A2NSCO006837;
Thu, 9 Jul 2009 22:23:28 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6A2NPQV011574;
Thu, 9 Jul 2009 22:23:26 -0400
Message-ID: <4A56A61D.9010705@gmail.com>
Date: Fri, 10 Jul 2009 12:23:25 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: Martin Hicks
CC: Nathan Scott , kenj ,
pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
References: <4A5541FE.9090905@gmail.com> <144401009.303101247103013280.JavaMail.root@mail-au.aconex.com> <20090709122558.GB5068@laplace.bork.org>
In-Reply-To: <20090709122558.GB5068@laplace.bork.org>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247193045
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2999
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Martin Hicks wrote:
> On Thu, Jul 09, 2009 at 11:30:13AM +1000, Nathan Scott wrote:
>>> And having a 'pad' field in the middle of a structure seems kind
>>> of funky, but I can see the reasoning for wanting it there. Maybe
>>> just use up the two existing pad bits and call it 'flags'? (with
>>> room for three more flag values in the future, one of which could
>>> be to flag an extended range of domain values).
>> Hmm, I'd be more inclined to extend "domain" now - we've used up
>> more than half the available domain numbers already, so this seems
>> like the most useful way to use that bit IMO (256 numbers looks a
>> tad small to me, nowadays, whereas 512 would buy alot of headroom).
>
> Yeah, I agree with this. We might as well take this step now to leave
> plenty of room for growth.
With the int flags:2 approach, we'd still have one unused flag combo
available for future use. With the domain extension, we'll have zilch.
Probably should've made the darn things uint64 in the first place!
Just a thought :) I'll go with the domain extension.
Cheers
From kenj@internode.on.net Fri Jul 10 00:39:37 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6A5dZ8T079455
for ; Fri, 10 Jul 2009 00:39:36 -0500
X-ASG-Debug-ID: 1247204837-787800470000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail.internode.on.net (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 63F91A2795F
for ; Thu, 9 Jul 2009 22:47:17 -0700 (PDT)
Received: from mail.internode.on.net (bld-mail12.adl6.internode.on.net [150.101.137.97]) by cuda.sgi.com with ESMTP id qvRtK7aPall5zdtz for ; Thu, 09 Jul 2009 22:47:17 -0700 (PDT)
Received: from [192.168.1.100] (unverified [118.208.165.112])
by mail.internode.on.net (SurgeMail 3.8f2) with ESMTP id 2114504-1927428
for multiple; Fri, 10 Jul 2009 15:10:08 +0930 (CST)
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence
dynamic metrics)
From: Ken McDonell
Reply-To: kenj@internode.on.net
To: Mark Goodwin
Cc: Martin Hicks , Nathan Scott ,
pcp@oss.sgi.com
In-Reply-To: <4A56A61D.9010705@gmail.com>
References: <4A5541FE.9090905@gmail.com>
<144401009.303101247103013280.JavaMail.root@mail-au.aconex.com>
<20090709122558.GB5068@laplace.bork.org> <4A56A61D.9010705@gmail.com>
Content-Type: text/plain
Date: Fri, 10 Jul 2009 15:40:05 +1000
Message-Id: <1247204405.17215.13.camel@bozo>
Mime-Version: 1.0
X-Mailer: Evolution 2.26.1
Content-Transfer-Encoding: 7bit
X-Barracuda-Connect: bld-mail12.adl6.internode.on.net[150.101.137.97]
X-Barracuda-Start-Time: 1247204839
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3013
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
On Fri, 2009-07-10 at 12:23 +1000, Mark Goodwin wrote:
> With the int flags:2 approach, we'd still have one unused flag combo
> available for future use. With the domain extension, we'll have zilch.
> Probably should've made the darn things uint64 in the first place!
>
> Just a thought :) I'll go with the domain extension.
Since it has taken a little under 16 years for us to come to the
realization that we need one flag bit in the PMID, I'd be willing to bet
that the second flag bit probably won't be needed until somewhere
between the years 2025 (linear extrapolation) and 2265 (exponential
extrapolation) ... and in either case, it won't be my problem ... 8^)>
From goodwinos@gmail.com Tue Jul 14 06:01:34 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,
J_CHICKENPOX_74 autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6EB1Yl4105724
for ; Tue, 14 Jul 2009 06:01:34 -0500
X-ASG-Debug-ID: 1247569331-44d500610000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP
id 3EEE31B4B7AA; Tue, 14 Jul 2009 04:02:11 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id J3iPqDO2oc6HDGyJ; Tue, 14 Jul 2009 04:02:11 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6EB28PE025660;
Tue, 14 Jul 2009 07:02:08 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6EB1xuG025057;
Tue, 14 Jul 2009 07:02:07 -0400
Received: from [10.64.6.18] (vpn6-6-18.bne.redhat.com [10.64.6.18])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6EB1t2m029824;
Tue, 14 Jul 2009 07:01:56 -0400
Message-ID: <4A5C65A3.3050100@gmail.com>
Date: Tue, 14 Jul 2009 21:01:55 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: Martin Hicks
CC: Max Matveev , pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] IB pmda and writing out the default config file
Subject: Re: [pcp] IB pmda and writing out the default config file
References: <20090608171828.GA14199@alcatraz.americas.sgi.com> <18990.24528.172761.247069@iinet.net.au> <20090616182224.GI20783@alcatraz.americas.sgi.com> <20090706173919.GC18171@alcatraz.americas.sgi.com>
In-Reply-To: <20090706173919.GC18171@alcatraz.americas.sgi.com>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247569332
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3375
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Martin Hicks wrote:
>> How about this patch. It rejigs things a lot, but essentially:
>>
>> - No config file will be created unless the '-w' flag is passed to
>> pmdaib. (this is a change)
>>
>> - By default, if no config file is found, only local ports are monitored.
>> (before we would always write out a config file containing only local
>> ports)
>>
>> - If a config file exists then it is the preferred source of information
>> and perhaps not even local ports will be monitored. (before you could
>> have edited the automatically created file to remove the local ports)
>>
>>
>> So in the case of a user who is using a custom config file (either to
>> name the instances differently, or to monitor remote ports) who replaces
>> an HCA, it will be up to them to edit the config file that they created.
>>
>> For those who are using the ib pmda in its simplest mode with no config
>> file, no changes will be necessary when an HCA is replaced but they have
>> no guarantee of static device naming if they add an additional HCA.
Seems like a reasonable compromise to me. Instance naming in merged
archives spanning reboots will sometimes be screwed up, but you still
have the option to avoid that if it really matters. When you look at the
flaming hoops the scsi and device-mapper folks have jumped thru to
achieve persistent naming, a more sophisticated scheme isn't warranted;
set-and-forget performance monitoring is more important in most cases.
Cheers
-- Mark
>> diff --git a/src/pmdas/ib/daemon.c b/src/pmdas/ib/daemon.c
>> index 2a71151..12540cc 100644
>> --- a/src/pmdas/ib/daemon.c
>> +++ b/src/pmdas/ib/daemon.c
>> @@ -33,7 +33,8 @@ usage(void)
>> fputs("Options:\n"
>> " -d domain use domain (numeric) for metrics domain of PMDA\n"
>> " -l logfile write log into logfile rather than using default log name\n"
>> - " -c path to configuration file\n",
>> + " -c path to configuration file\n"
>> + " -w write the basic configuration file\n",
>> stderr);
>> exit(1);
>> }
>> @@ -46,19 +47,22 @@ main(int argc, char **argv)
>> pmdaInterface dispatch;
>> char helppath[MAXPATHLEN];
>> char *confpath = NULL;
>> - char *p;
>> int opt;
>> + int writeconf = 0;
>>
>> __pmSetProgname(argv[0]);
>> snprintf(helppath, sizeof(helppath), "%s%c" "ib" "%c" "help",
>> pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
>> pmdaDaemon(&dispatch, PMDA_INTERFACE_3, pmProgname, IB, "ib.log", helppath);
>>
>> - while ((opt = pmdaGetOpt(argc, argv, "D:c:d:l:?", &dispatch, &err)) != EOF) {
>> + while ((opt = pmdaGetOpt(argc, argv, "D:c:d:l:w?", &dispatch, &err)) != EOF) {
>> switch (opt) {
>> case 'c':
>> confpath = optarg;
>> break;
>> + case 'w':
>> + writeconf = 1;
>> + break;
>> default:
>> err++;
>> }
>> @@ -69,7 +73,7 @@ main(int argc, char **argv)
>> }
>>
>> pmdaOpenLog(&dispatch);
>> - ibpmda_init(confpath, &dispatch);
>> + ibpmda_init(confpath, writeconf, &dispatch);
>> pmdaConnect(&dispatch);
>> pmdaMain(&dispatch);
>>
>> diff --git a/src/pmdas/ib/dso.c b/src/pmdas/ib/dso.c
>> index 33f10a8..4e506f8 100644
>> --- a/src/pmdas/ib/dso.c
>> +++ b/src/pmdas/ib/dso.c
>> @@ -37,5 +37,5 @@ ib_init (pmdaInterface * dispatch)
>> pmGetConfig("PCP_PMDAS_DIR"), sep, sep);
>> pmdaDSO(dispatch, PMDA_INTERFACE_3, "ibpmda", helppath);
>>
>> - ibpmda_init(NULL, dispatch);
>> + ibpmda_init(NULL, 0, dispatch);
>> }
>> diff --git a/src/pmdas/ib/ib.c b/src/pmdas/ib/ib.c
>> index ccfb079..c027f77 100644
>> --- a/src/pmdas/ib/ib.c
>> +++ b/src/pmdas/ib/ib.c
>> @@ -141,6 +141,70 @@ typedef struct port_state_s {
>> char pcap[IB_ALLPORTCAPSTRLEN];
>> } port_state_t;
>>
>> +static char confpath[MAXPATHLEN];
>> +static int portcount;
>> +/* Line number while parsing the config file */
>> +static FILE *fconf;
>> +static int lcnt;
>> +
>> +#define print_parse_err(loglevel, fmt, args...) \
>> + if (fconf) { \
>> + __pmNotifyErr(loglevel, "%s(%d): " fmt, fconf, lcnt, args); \
>> + } else { \
>> + __pmNotifyErr(loglevel, fmt, args); \
>> + }
>> +
>> +static void
>> +monitor_guid(pmdaIndom *itab, char *name, long long guid, int rport,
>> + char *local, int lport)
>> +{
>> + int inst;
>> + hca_state_t *hca = NULL;
>> + port_state_t *ps;
>> +
>> + if (pmdaCacheLookupName(itab[IB_HCA_INDOM].it_indom, local, NULL,
>> + (void**)&hca) != PMDA_CACHE_ACTIVE) {
>> + print_parse_err(LOG_ERR, "unknown HCA '%s' in 'via' clause\n", local);
>> + return;
>> + }
>> +
>> + if ((lport >= UMAD_CA_MAX_PORTS) || (lport < 0)) {
>> + print_parse_err(LOG_ERR,
>> + "port number %d is out of bounds for HCA %s\n",
>> + lport, local);
>> + return;
>> + }
>> +
>> + if (hca->lports[lport].hndl == NULL) {
>> + print_parse_err(LOG_ERR,
>> + "port %s:%d has failed initialization\n",
>> + local, lport);
>> + return;
>> + }
>> +
>> + if ((ps = (port_state_t *)calloc(1, sizeof(port_state_t))) == NULL) {
>> + __pmNotifyErr (LOG_ERR, "Out of memory to save state for %s\n", name);
>> + return;
>> + }
>> +
>> + ps->guid = guid;
>> + ps->remport = rport;
>> + ps->lport = hca->lports + lport;
>> + ps->portid.lid = -1;
>> + ps->timeout = 1000;
>> +
>> + if ((inst = pmdaCacheStore(itab[IB_PORT_INDOM].it_indom,
>> + PMDA_CACHE_ADD, name, ps)) < 0) {
>> + __pmNotifyErr(LOG_ERR, "Cannot add %s to the cache - %s\n",
>> + name, pmErrStr(inst));
>> + free (ps);
>> + return;
>> + }
>> +
>> + portcount++;
>> +}
>> +
>> +
>> static int
>> foreachport(hca_state_t *hst, void (*cb)(hca_state_t *, umad_port_t *, void *),
>> void *closure)
>> @@ -166,7 +230,6 @@ foreachport(hca_state_t *hst, void (*cb)(hca_state_t *, umad_port_t *, void *),
>> static void
>> printportconfig (hca_state_t *hst, umad_port_t *port, void *arg)
>> {
>> - FILE *fconf = arg;
>> uint64_t hguid = port->port_guid;
>>
>> __ntohll((char *)&hguid);
>> @@ -176,6 +239,20 @@ printportconfig (hca_state_t *hst, umad_port_t *port, void *arg)
>> hst->ca.ca_name, port->portnum);
>> }
>>
>> +static void
>> +monitorport(hca_state_t *hst, umad_port_t *port, void *arg)
>> +{
>> + pmdaIndom *itab = arg;
>> + uint64_t hguid = port->port_guid;
>> + char name[128];
>> +
>> + __ntohll((char *)&hguid);
>> + sprintf(name, "%s:%d", port->ca_name, port->portnum);
>> +
>> + monitor_guid(itab, name, hguid, port->portnum, port->ca_name, port->portnum);
>> +}
>> +
>> +
>> static int mgmt_classes[] = {IB_SMI_CLASS, IB_SMI_DIRECT_CLASS,
>> IB_SA_CLASS, IB_PERFORMANCE_CLASS};
>> static void
>> @@ -196,74 +273,10 @@ openumadport (hca_state_t *hst, umad_port_t *port, void *arg)
>> lp->hndl = hndl;
>> }
>>
>> -int
>> -ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
>> +static void
>> +parse_config(pmdaIndom *itab)
>> {
>> - char hcas[IBPMDA_MAX_HCAS][UMAD_CA_NAME_LEN];
>> - hca_state_t *st = NULL;
>> - int i, n;
>> - int lcnt = 0;
>> char buffer[2048];
>> - FILE *fconf;
>> - int (*closef)(FILE *) = fclose;
>> - int portcount = 0;
>> -
>> - if (nindoms <= IB_CNT_INDOM) {
>> - return (-EINVAL);
>> - }
>> -
>> - if (umad_init()) {
>> - return (-EIO);
>> - }
>> -
>> - if ((n = umad_get_cas_names(hcas, ARRAYSZ(hcas)))) {
>> - if ((st = calloc (n, sizeof(hca_state_t))) == NULL) {
>> - return (-ENOMEM);
>> - }
>> - } else {
>> - return (0);
>> - }
>> -
>> - for (i=0; i < n; i++) {
>> - if (umad_get_ca(hcas[i], &st[i].ca) == 0) {
>> - int e = pmdaCacheStore (itab[IB_HCA_INDOM].it_indom, PMDA_CACHE_ADD,
>> - st[i].ca.ca_name, &st[i].ca);
>> -
>> - if (e >= 0) {
>> - foreachport (st+i, openumadport, NULL);
>> - } else {
>> - __pmNotifyErr (LOG_ERR,
>> - "Cannot add instance for %s to the "
>> - "cache - %s\n",
>> - st[i].ca.ca_name, pmErrStr(e));
>> - }
>> - }
>> - }
>> -
>> - /* Process config file - if the executable bit is set then assume
>> - * that user wants it to be a script and run it, otherwise try loading
>> - * it. If it cannot be loaded then create a default one and
>> - * process it again */
>> - if (access(confpath, X_OK)) {
>> - /* Not an executable, just read it */
>> - if ((fconf = fopen (confpath, "r")) == NULL) {
>> - if ((fconf = fopen (confpath, "w+")) != NULL) {
>> - for (i=0; i < n; i++) {
>> - foreachport (st+i, printportconfig, fconf);
>> - }
>> - fseek (fconf, 0, SEEK_SET);
>> - }
>> - }
>> - } else {
>> - fconf = popen(confpath, "r");
>> - closef = pclose;
>> - }
>> -
>> - if (fconf == NULL) {
>> - __pmNotifyErr (LOG_CRIT, "Cannot open configuration file %s\n",
>> - confpath);
>> - return (-ENOENT);
>> - }
>>
>> while ((fgets(buffer, sizeof(buffer)-1, fconf)) != NULL) {
>> char *p;
>> @@ -285,64 +298,98 @@ ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
>> int rport;
>> char local[128];
>> int lport;
>> - hca_state_t *hca = NULL;
>> - port_state_t *ps;
>>
>> if (sscanf(p, "%[^ \t]%llx%d via %[^:]:%d",
>> name, &guid, &rport, local, &lport) != 5) {
>> __pmNotifyErr (LOG_ERR, "%s(%d): cannot parse the line\n",
>> confpath, lcnt);
>> - } else if (pmdaCacheLookupName(itab[IB_HCA_INDOM].it_indom,
>> - local, NULL,
>> - (void**)&hca) != PMDA_CACHE_ACTIVE) {
>> - __pmNotifyErr (LOG_ERR,
>> - "%s(%d): unknown HCA '%s' in 'via' clause\n",
>> - confpath, lcnt, local);
>> - } else if ((lport >= UMAD_CA_MAX_PORTS) || (lport < 0)) {
>> - __pmNotifyErr (LOG_ERR,
>> - "%s(%d): port number %d is out of bounds for "
>> - "HCA %s\n",
>> - confpath, lcnt, lport, local);
>> - } else if (hca->lports[lport].hndl == NULL) {
>> - __pmNotifyErr (LOG_ERR,
>> - "%s(%d): port %s:%d has failed initialization\n",
>> - confpath, lcnt, local, lport);
>> - } else if ((ps = (port_state_t *)calloc(1, sizeof(port_state_t))) == NULL) {
>> - __pmNotifyErr (LOG_ERR, "Out of memory to save state for %s\n",
>> - name);
>> - } else {
>> - int inst;
>> - ps->guid = guid;
>> - ps->remport = rport;
>> - ps->lport = hca->lports + lport;
>> - ps->portid.lid = -1;
>> - ps->timeout = 1000;
>> -
>> - if ((inst = pmdaCacheStore (itab[IB_PORT_INDOM].it_indom,
>> - PMDA_CACHE_ADD, name, ps)) < 0) {
>> - __pmNotifyErr (LOG_ERR,
>> - "Cannot add %s to the cache - %s\n",
>> - name, pmErrStr(inst));
>> - free (ps);
>> - } else {
>> - portcount++;
>> - }
>> + continue;
>> }
>> +
>> + monitor_guid(itab, name, guid, rport, local, lport);
>> }
>> }
>> - (*closef) (fconf);
>> +}
>> +
>> +int
>> +ib_load_config(const char *cp, int writeconf, pmdaIndom *itab, unsigned int nindoms)
>> +{
>> + char hcas[IBPMDA_MAX_HCAS][UMAD_CA_NAME_LEN];
>> + hca_state_t *st = NULL;
>> + int i, n;
>> + int (*closef)(FILE *) = fclose;
>> +
>> + if (nindoms <= IB_CNT_INDOM)
>> + return -EINVAL;
>> +
>> + if (umad_init())
>> + return -EIO;
>> +
>> + if ((n = umad_get_cas_names(hcas, ARRAYSZ(hcas)))) {
>> + if ((st = calloc (n, sizeof(hca_state_t))) == NULL)
>> + return -ENOMEM;
>> + } else
>> + /* No HCAs */
>> + return 0;
>> +
>> + /* Open config file - if the executable bit is set then assume that
>> + * user wants it to be a script and run it, otherwise try loading it.
>> + */
>> + strcpy(confpath, cp);
>> + if (access(confpath, F_OK) == 0) {
>> + if (writeconf) {
>> + __pmNotifyErr(LOG_ERR,
>> + "Config file exists and writeconf arg was given to pmdaib. "
>> + "Using existing config file");
>> + writeconf = 0;
>> + }
>> +
>> + if (access(confpath, X_OK)) {
>> + /* Not an executable, just read it */
>> + fconf = fopen (confpath, "r");
>> + } else if (!writeconf) {
>> + fconf = popen(confpath, "r");
>> + closef = pclose;
>> + }
>> + } else if (writeconf) {
>> + fconf = fopen(confpath, "w");
>> + }
>> +
>> + for (i=0; i < n; i++) {
>> + if (umad_get_ca(hcas[i], &st[i].ca) == 0) {
>> + int e = pmdaCacheStore(itab[IB_HCA_INDOM].it_indom, PMDA_CACHE_ADD,
>> + st[i].ca.ca_name, &st[i].ca);
>> +
>> + if (e < 0) {
>> + __pmNotifyErr(LOG_ERR,
>> + "Cannot add instance for %s to the cache - %s\n",
>> + st[i].ca.ca_name, pmErrStr(e));
>> + continue;
>> + }
>> +
>> + foreachport(st+i, openumadport, NULL);
>> + if (fconf == NULL || writeconf)
>> + /* No config file - monitor local ports */
>> + foreachport(st+i, monitorport, itab);
>> + if (writeconf)
>> + foreachport(st+i, printportconfig, fconf);
>> + }
>> + }
>> +
>> + if (fconf) {
>> + parse_config(itab);
>> + (*closef)(fconf);
>> + }
>>
>> if (!portcount) {
>> - __pmNotifyErr (LOG_INFO,
>> - "No ports found in configuration file %s\n",
>> - confpath);
>> + __pmNotifyErr(LOG_INFO, "No IB ports found to monitor");
>> }
>> -
>> +
>> itab[IB_CNT_INDOM].it_set = (pmdaInstid *)calloc(ARRAYSZ(mad_cnt_descriptors),
>> sizeof(pmdaInstid));
>>
>> if (itab[IB_CNT_INDOM].it_set == NULL) {
>> - return (-ENOMEM);
>> + return -ENOMEM;
>> }
>>
>> itab[IB_CNT_INDOM].it_numinst = ARRAYSZ(mad_cnt_descriptors);
>> @@ -351,8 +398,8 @@ ib_load_config(const char *confpath, pmdaIndom *itab, unsigned int nindoms)
>> itab[IB_CNT_INDOM].it_set[i].i_name = mad_cnt_descriptors[i].name;
>>
>> }
>> -
>> - return (0);
>> +
>> + return 0;
>> }
>>
>> static char *
>> @@ -869,7 +916,7 @@ ib_store(pmResult *result, pmdaExt *pmda)
>> return (PM_ERR_INST);
>> }
>> break;
>> -
>> +
>> case METRIC_ib_control_hiwat:
>> if ((id < 0) ||
>> (id > pmda->e_indoms[IB_CNT_INDOM].it_numinst)) {
>> @@ -884,7 +931,7 @@ ib_store(pmResult *result, pmdaExt *pmda)
>> }
>> }
>> }
>> - return (0);
>> + return 0;
>> }
>>
>>
>> diff --git a/src/pmdas/ib/ibpmda.h b/src/pmdas/ib/ibpmda.h
>> index 153743b..fae2c3c 100644
>> --- a/src/pmdas/ib/ibpmda.h
>> +++ b/src/pmdas/ib/ibpmda.h
>> @@ -22,10 +22,10 @@
>> #include "domain.h"
>>
>>
>> -void ibpmda_init (const char *configpath, pmdaInterface *);
>> +void ibpmda_init (const char *configpath, int, pmdaInterface *);
>>
>> int ib_fetch_val(pmdaMetric *, unsigned int, pmAtomValue *);
>> -int ib_load_config(const char *, pmdaIndom *, unsigned int);
>> +int ib_load_config(const char *, int, pmdaIndom *, unsigned int);
>> void ib_rearm_for_update(void *);
>> void ib_reset_perfcounters (void *);
>> int ib_store(pmResult *, pmdaExt *);
>> diff --git a/src/pmdas/ib/pmda.c b/src/pmdas/ib/pmda.c
>> index 6a8e02d..d5557b3 100644
>> --- a/src/pmdas/ib/pmda.c
>> +++ b/src/pmdas/ib/pmda.c
>> @@ -297,7 +297,7 @@ ib_fetch(int numpmid, pmID pmidlist[], pmResult **resp, pmdaExt *pmda)
>> }
>>
>> void
>> -ibpmda_init(const char *confpath, pmdaInterface *dp)
>> +ibpmda_init(const char *confpath, int writeconf, pmdaInterface *dp)
>> {
>> char defconf[MAXPATHLEN];
>> int sep = __pmPathSeparator();
>> @@ -320,7 +320,7 @@ ibpmda_init(const char *confpath, pmdaInterface *dp)
>> }
>>
>>
>> - if ((dp->status = ib_load_config (confpath, indomtab, ARRAYSZ(indomtab))))
>> + if ((dp->status = ib_load_config(confpath, writeconf, indomtab, ARRAYSZ(indomtab))))
>> return;
>>
>> for (i=0; i < ARRAYSZ(indomtab); i++) {
>>
>>
>> _______________________________________________
>> pcp mailing list
>> pcp@oss.sgi.com
>> http://oss.sgi.com/mailman/listinfo/pcp
>
> _______________________________________________
> pcp mailing list
> pcp@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/pcp
From goodwinos@gmail.com Tue Jul 14 06:15:15 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6EBFFtk106291
for ; Tue, 14 Jul 2009 06:15:15 -0500
X-ASG-Debug-ID: 1247570153-1c34030e0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id F2A841B53E18
for ; Tue, 14 Jul 2009 04:15:53 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id tuDQxla1QPg2fR6l for ; Tue, 14 Jul 2009 04:15:53 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6EBFm4m028948;
Tue, 14 Jul 2009 07:15:48 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6EBFlMB027744;
Tue, 14 Jul 2009 07:15:47 -0400
Received: from [10.64.6.18] (vpn6-6-18.bne.redhat.com [10.64.6.18])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6EBFggJ032331;
Tue, 14 Jul 2009 07:15:45 -0400
Message-ID: <4A5C68DD.7000904@gmail.com>
Date: Tue, 14 Jul 2009 21:15:41 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: kenj@internode.on.net
CC: pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
Subject: Re: [pcp] Proposal for handling dynamic metric names (and hence dynamic
metrics)
References: <1004255165.302471247102430882.JavaMail.root@mail-au.aconex.com> <1247180059.7833.257.camel@bozo>
In-Reply-To: <1247180059.7833.257.camel@bozo>
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1247570154
X-Barracuda-Bayes: INNOCENT GLOBAL 0.2218 1.0000 -0.7150
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -0.72
X-Barracuda-Spam-Status: No, SCORE=-0.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3375
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Ken McDonell wrote:
> * clusterns.pl this one makes me nervous ... I am not sure what it
> is doing, but this fragment ... ($rawcluster !~ /^[0-9]+$/) and
> die "PMID cluster is not numeric in node '$_'\n"; .... may be a
> problem if it is handling pmns nodes for other than the cluster
> PMDA at this point ... Mark could you please check this one?
The entire cluster PMDA namespace will need to be converted over to the
dynamic mechanism, one we hve it - this will be a much better solution
than the current hacky scheme. See the comments in the clusterns.pl script.
Let's deal with that when the time comes.
Cheers
From mort@sgi.com Tue Jul 14 08:21:04 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6EDL4I7120425
for ; Tue, 14 Jul 2009 08:21:04 -0500
Received: from attica.americas.sgi.com (attica.americas.sgi.com [128.162.236.44])
by relay2.corp.sgi.com (Postfix) with ESMTP id AA121304090;
Tue, 14 Jul 2009 06:21:40 -0700 (PDT)
Received: by attica.americas.sgi.com (Postfix, from userid 44682)
id 7C784A0A4170; Tue, 14 Jul 2009 08:21:40 -0500 (CDT)
Date: Tue, 14 Jul 2009 08:21:40 -0500
From: Martin Hicks
To: Mark Goodwin
Cc: Max Matveev , pcp@oss.sgi.com
Subject: Re: [pcp] IB pmda and writing out the default config file
Message-ID: <20090714132140.GH18171@alcatraz.americas.sgi.com>
References: <20090608171828.GA14199@alcatraz.americas.sgi.com> <18990.24528.172761.247069@iinet.net.au> <20090616182224.GI20783@alcatraz.americas.sgi.com> <20090706173919.GC18171@alcatraz.americas.sgi.com> <4A5C65A3.3050100@gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <4A5C65A3.3050100@gmail.com>
User-Agent: Mutt/1.5.17 (2007-11-01)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
On Tue, Jul 14, 2009 at 09:01:55PM +1000, Mark Goodwin wrote:
> Martin Hicks wrote:
>>> How about this patch. It rejigs things a lot, but essentially:
>>>
>>> - No config file will be created unless the '-w' flag is passed to
>>> pmdaib. (this is a change)
>>>
>>> - By default, if no config file is found, only local ports are monitored.
>>> (before we would always write out a config file containing only local
>>> ports)
>>>
>>> - If a config file exists then it is the preferred source of information
>>> and perhaps not even local ports will be monitored. (before you could
>>> have edited the automatically created file to remove the local ports)
>>>
>>>
>>> So in the case of a user who is using a custom config file (either to
>>> name the instances differently, or to monitor remote ports) who replaces
>>> an HCA, it will be up to them to edit the config file that they created.
>>>
>>> For those who are using the ib pmda in its simplest mode with no config
>>> file, no changes will be necessary when an HCA is replaced but they have
>>> no guarantee of static device naming if they add an additional HCA.
>
> Seems like a reasonable compromise to me. Instance naming in merged
> archives spanning reboots will sometimes be screwed up, but you still
> have the option to avoid that if it really matters. When you look at the
> flaming hoops the scsi and device-mapper folks have jumped thru to
> achieve persistent naming, a more sophisticated scheme isn't warranted;
> set-and-forget performance monitoring is more important in most cases.
I think I'm going to change things so the '-w' writes the config file
and exits immediately.
I'll also write up a manpage. This PMDA is fairly complicated and I had
a few "oh, it does that too?" moments while I was doing this work.
mh
From mort@sgi.com Tue Jul 14 09:24:43 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6EEOgZV122708
for ; Tue, 14 Jul 2009 09:24:43 -0500
Received: from attica.americas.sgi.com (attica.americas.sgi.com [128.162.236.44])
by relay3.corp.sgi.com (Postfix) with ESMTP id 0D474AC013
for ; Tue, 14 Jul 2009 07:25:19 -0700 (PDT)
Received: by attica.americas.sgi.com (Postfix, from userid 44682)
id 90592A0A4170; Tue, 14 Jul 2009 09:25:18 -0500 (CDT)
Date: Tue, 14 Jul 2009 09:25:18 -0500
From: Martin Hicks
To: pcp@oss.sgi.com
Subject: pmgadgets port
Message-ID: <20090714142518.GI18171@alcatraz.americas.sgi.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.17 (2007-11-01)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
I haven't worked on this (other than on qwt widgets) for quite a while
and I should have posted the code sooner. I just pushed out a tree
to oss:
git clone git://oss.sgi.com/mort/pcp-gui.git
The general event mechanism works, the config file parser works, the old
metric scheduler works (needs to be converted over to using the
one that is provided in the pcp libraries). The big gap is the widets.
mh
From nscott@aconex.com Wed Jul 15 00:55:36 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6F5tZJU175174
for ; Wed, 15 Jul 2009 00:55:36 -0500
X-ASG-Debug-ID: 1247637372-3640033d0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 59493364260
for ; Tue, 14 Jul 2009 22:56:13 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id XO3Otq6KhOTtrJum for ; Tue, 14 Jul 2009 22:56:13 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id BE0CC18FAFB
for ; Wed, 15 Jul 2009 15:56:11 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id ZHcvfIAtUqS5Anr0 for ; Wed, 15 Jul 2009 15:56:11 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id CFDEFA503F7
for ; Wed, 15 Jul 2009 15:55:36 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id AECC14FD82
for ; Wed, 15 Jul 2009 15:56:11 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Qki89-BaSAvu for ;
Wed, 15 Jul 2009 15:56:07 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id F2F354FD88
for ; Wed, 15 Jul 2009 15:56:06 +1000 (EST)
Date: Wed, 15 Jul 2009 15:56:06 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <206241137.628471247637366881.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcpqa updates
Subject: pcpqa updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247637374
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3447
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/pcp/pcpqa.git
348 | 12 +--
348.out | 2
597 | 28 +------
597.out.2 | 4 -
646.out | 100 +++++++++++-----------------
647 | 206 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
647.out | 174 ++++++++++++++++++++++++++++++++++++++++++++++++
common.filter | 20 +++++
group | 2
owner | 2
10 files changed, 456 insertions(+), 94 deletions(-)
commit 44cc8977d16c3b9ac3d4ae5d5685c8b7241996a2
Author: Nathan Scott
Date: Wed Jul 15 15:53:20 2009 +1000
Add more QA test coverage for the MMV PMDA.
New QA test to exercise PMDA Install, Remove, and all of
the different flavours of MMV export values/metric types,
PDU exchanges with pmcd, etc.
Also added a generic _pmda_remove_filter analagous to the
_pmda_install_filter and updated 348 & 597 to use it too.
commit 1c60dc81b848072c60e511891e89be16b56badde
Author: Nathan Scott
Date: Wed Jul 15 13:52:05 2009 +1000
Fix up 646 output to match revised MMV format with fewer string TOCs.
From mort@sgi.com Wed Jul 15 14:52:35 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6FJqYCS217754
for ; Wed, 15 Jul 2009 14:52:34 -0500
Received: from attica.americas.sgi.com (attica.americas.sgi.com [128.162.236.44])
by relay1.corp.sgi.com (Postfix) with ESMTP id 7C3378F8040
for ; Wed, 15 Jul 2009 12:53:11 -0700 (PDT)
Received: by attica.americas.sgi.com (Postfix, from userid 44682)
id 2EC1EA0A4170; Wed, 15 Jul 2009 14:53:11 -0500 (CDT)
Date: Wed, 15 Jul 2009 14:53:11 -0500
From: Martin Hicks
To: pcp@oss.sgi.com
Subject: [patch] manpage for IB pmda
Message-ID: <20090715195311.GF27950@alcatraz.americas.sgi.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.17 (2007-11-01)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Here's a patch for giving the infiniband PMDA a manpage. Should this be
always installed or should I only install it when HAVE_IBDEV=1? I feel
like the manpage should always be installed, but I could be convinced
otherwise...
I'll push this up soon, if there are no objections. This reflects the
reality of the outstanding patch I have to the IB PMDA in my tree. I
just need a bit more test time before I commit it.
diff --git a/man/man1/GNUmakefile b/man/man1/GNUmakefile
index 38197ff..ddce3b5 100644
--- a/man/man1/GNUmakefile
+++ b/man/man1/GNUmakefile
@@ -33,6 +33,7 @@ MAN_PAGES = chkhelp.1 dbpmda.1 mkaf.1 newhelp.1
pcp.1 pcpintro.1 \
pmtrace.1 pmval.1 pmdaweblog.1 pmlogsummary.1 pmdashping.1 \
pmloglabel.1 genpmda.1 pmproxy.1 pmdasummary.1 pmlogreduce.1 \
autofsd-probe.1 pmie2col.1 telnet-probe.1 pmsleep.1 pmsignal.1 \
+ pmdaib.1
MAN_DEST = $(PCP_MAN_DIR)/man$(MAN_SECTION)
LSRCFILES = $(MAN_PAGES)
and the manpage (man/man1/pmdaib.1)
'\"macro stdmacro
.\"
.\" Copyright (c) 2009 Silicon Graphics, Inc. All Rights Reserved.
.\"
.\" This program is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU General Public License as published by the
.\" Free Software Foundation; either version 2 of the License, or (at your
.\" option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful, but
.\" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
.\" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
.\" for more details.
.\"
.ds ia ib
.ds IA IB
.TH PMDAIB 1 "SGI" "Performance Co-Pilot"
.SH NAME
\f3pmda\*(ia\f1 \- \*(ia performance metrics domain agent (PMDA)
.SH SYNOPSYS
\f3$PCP_PMDAS_DIR/\*(ia/pmda\*(ia\f1
[\f3\-c\f1 \f2configFile\f1]
[\f3\-D\f1 \f2debug\f1]
[\f3\-d\f1 \f2domain\f1]
[\f3\-l\f1 \f2logfile\f1]
[\f3\-w\f1]
.SH DESCRIPTION
.B pmda\*(ia
is a Performance Metrics Domain Agent (PMDA) which exports information and
performance metrics about local Infiniband HCAs and local or remote Infiniband GUIDs.
.PP
A brief description of the
.B pmda\*(ia
command line options follows:
.TP 5
.B \-c
Location of the config file. By default, the config file is named
.BR $PCP_PMDAS_DIR/\*(ia/config.
See
.BR "CONFIG FILE"
for more information.
.TP
.B -D
A debug values, as specified by
.B pmdbg (1)
.TP
.B \-d
Specify an alternate performance metrics
.I domain
number. Almost never necessary.
.TP
.B \-l
Location of the log file. By default, a log file named
.I \*(ia.log
is written to
.BR $PCP_LOG_DIR/pmcd .
If the log file cannot be created or is not writable, output
is written to the standard error instead.
.TP
.B \-w
Write out the default config file to
.BR $PCP_PMDAS_DIRS/\*(ia
and exit immediately. The written config file will contain the local HCA ports.
It will not overwrite an existing file. This argument should only be used to create
the template config file and should never appear in
.I pmcd.conf.
See
.BR "CONFIG FILE"
for more information on the file format and on monitoring
remote GUIDs.
.SH CONFIG FILE
By default, the PMDA will operate without using a config file. In this mode of operation
the local HCA ports will be monitored. Note that if a new HCA is added to the machine that
instance domain naming may change because it will always be based on the kernel's naming.
.PP
In cases where this is not acceptable, or in the case where monitoring remote Infiniband
ports is required, a config file must be created. A "template" file can be created by
running the
.B pmda\*(ia
daemon with the
.B \-w
argument. This will create a config file with the local ports and GUIDs.
.PP
If the config file is
.I executable
then it will be run and the output will be used as the config file.
.PP
The config file is composed of line-based records. Blank lines and everything after
the
.I hash (#)
character are ignored. Each line has 6 fields:
.PP
[\f3instName\f1] [\f3portGUID\f1] [\f3portNum\f1] via [\f3localPortName\f1]:[\f3localPortNum\f1]
.PP
The first field is used to give a static instance name to the Infiniband port that
has a specific GUID. All of the other fields must be properly specified in order
to monitor a particular port.
.PP
For example, to monitor port 1 of the local HCA called 'mthca0' a possible config file
line would be:
.PP
myPort1 0xdeadbeef01234567 1 via mthca0:1
.PP
Remote ports can be easily monitored by specifying the GUID of the HCA or switch and
specifying the remote port number. The \f3localPortName\f1:\f3localPortNum\f1 tuple
specifies which local HCA and port to use as the "first hop" in contacting the remote
GUID. E.g., to monitor port 13 of a remote switch which is connected to the fabric
on the first port of the second HCA:
.PP
switch13 0xfeeffeefabcdabcd 13 via mthca1:1
.SH SEE ALSO
.BR pmcd (1),
.BR ibnetdiscover(8).
From nscott@aconex.com Thu Jul 16 02:08:15 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6G78ERn255948
for ; Thu, 16 Jul 2009 02:08:15 -0500
X-ASG-Debug-ID: 1247728132-3bcc00f50000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 57CD2367E60
for ; Thu, 16 Jul 2009 00:08:53 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id uHSytrmTxzYYBlg0 for ; Thu, 16 Jul 2009 00:08:53 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 16F6A19CC0B
for ; Thu, 16 Jul 2009 17:08:51 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id JRom8c5IZDTrwELn for ; Thu, 16 Jul 2009 17:08:51 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 931E8A50264
for ; Thu, 16 Jul 2009 17:08:15 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id F062A4FD86
for ; Thu, 16 Jul 2009 17:08:50 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id Fp6EYWIZBNzD for ;
Thu, 16 Jul 2009 17:08:46 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id C22604FD84
for ; Thu, 16 Jul 2009 17:08:46 +1000 (EST)
Date: Thu, 16 Jul 2009 17:08:46 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <1743935863.673841247728126673.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates
Subject: pcp updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247728134
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3539
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/nathans/pcp.git
src/pmdas/linux/proc_cpuinfo.c | 38 +++++++++++++++++---------------------
src/pmdas/linux/proc_cpuinfo.h | 1 -
src/pmdas/linux/proc_loadavg.c | 7 ++++---
3 files changed, 21 insertions(+), 25 deletions(-)
commit fee86f6503252207a236c5eb81c8d092eede1a87
Author: Nathan Scott
Date: Thu Jul 16 16:59:45 2009 +1000
Rework the special SGI CPU numbering logic in the Linux PMDA.
This resolves a buffer overflow bug in the use of realpath(3)
in this routine, which was being passed a too-small buffer.
This issue was initially reported to us by Chandana De Silva,
but looks like others have come across it too, e.g.:
https://bugs.launchpad.net/ubuntu/+source/pcp/+bug/384776
I've removed the unused "cname" field from the per-CPU data
structure, and also added some short-circuit logic into this
code so that we bail out of this logic early if no hardware-
graph filesystem paths are detected (which will be the normal
case for most people).
commit 67ae7fd90a32a43bbc97b939e57302556e864459
Author: Nathan Scott
Date: Thu Jul 16 16:54:11 2009 +1000
Resolve a valgrind reported problem when initing Linux loadavg metric.
Ensure read buffer is initialised to zero, and also check the return
code for a failed read syscall.
From daw@sgi.com Thu Jul 16 12:23:05 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6GHN4ZH029079
for ; Thu, 16 Jul 2009 12:23:04 -0500
Received: from zion.americas.sgi.com (zion.americas.sgi.com [128.162.236.17])
by relay3.corp.sgi.com (Postfix) with ESMTP id F3D64AC014
for ; Thu, 16 Jul 2009 10:23:41 -0700 (PDT)
Received: (from daw@localhost) by zion.americas.sgi.com (8.12.9/ASC-news-1.4) id n6GHNfPP30924525 for pcp@oss.sgi.com; Thu, 16 Jul 2009 12:23:41 -0500 (CDT)
Message-Id: <200907161723.n6GHNfPP30924525@zion.americas.sgi.com>
Subject: Getting harder to install PCP
To: pcp@oss.sgi.com
Date: Thu, 16 Jul 2009 12:23:41 -0500 (CDT)
In-Reply-To: from "pcp-request@oss.sgi.com" at Jul 16, 2009 12:00:01 PM
From: David Wright
X-Mailer: ELM [version 2.5 PL2]
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
The latest pcp rpm wont install anymore.
trng180:~/Desktop # rpm -ivh pcp*
warning: pcp-2.8.12-1.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 74886b63
error: Failed dependencies:
initscripts is needed by pcp-2.8.12-1.x86_64
rtld(GNU_HASH) is needed by pcp-2.8.12-1.x86_64
qt4 >= 4.2 is needed by pcp-gui-1.4.3-1.x86_64
rtld(GNU_HASH) is needed by pcp-gui-1.4.3-1.x86_64
why make it harder to install pcp? I am using sles10sp2 x86_64.
thank you,
David Wright
From mort@bork.org Thu Jul 16 12:47:42 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6GHlfoo029860
for ; Thu, 16 Jul 2009 12:47:42 -0500
X-ASG-Debug-ID: 1247766501-4e1901a80000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from darwin.bork.org (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 2CB4B36A0B5
for ; Thu, 16 Jul 2009 10:48:21 -0700 (PDT)
Received: from darwin.bork.org (darwin.bork.org [65.49.60.145]) by cuda.sgi.com with ESMTP id 3GBPe6rOZDQDx5J2 for ; Thu, 16 Jul 2009 10:48:21 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
by darwin.bork.org (Postfix) with ESMTP id 37A8B19689;
Thu, 16 Jul 2009 13:44:40 -0400 (EDT)
Received: from darwin.bork.org ([127.0.0.1])
by localhost (darwin.bork.org [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id NE15DywI8WGl; Thu, 16 Jul 2009 13:44:40 -0400 (EDT)
Received: from laplace.bork.org (laplace.bork.org [IPv6:2001:470:1f11:499:21a:a0ff:feec:57ab])
by darwin.bork.org (Postfix) with ESMTP id 05A2F19321;
Thu, 16 Jul 2009 13:44:40 -0400 (EDT)
Received: by laplace.bork.org (Postfix, from userid 1000)
id A0217538AA; Thu, 16 Jul 2009 13:48:19 -0400 (EDT)
Date: Thu, 16 Jul 2009 13:48:19 -0400
From: Martin Hicks
To: David Wright
Cc: pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: [pcp] Getting harder to install PCP
Subject: Re: [pcp] Getting harder to install PCP
Message-ID: <20090716174819.GV5068@laplace.bork.org>
References: <200907161723.n6GHNfPP30924525@zion.americas.sgi.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <200907161723.n6GHNfPP30924525@zion.americas.sgi.com>
User-Agent: Mutt/1.5.18 (2008-05-17)
X-Barracuda-Connect: darwin.bork.org[65.49.60.145]
X-Barracuda-Start-Time: 1247766502
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0008 1.0000 -2.0156
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3577
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
On Thu, Jul 16, 2009 at 12:23:41PM -0500, David Wright wrote:
>
> The latest pcp rpm wont install anymore.
>
> trng180:~/Desktop # rpm -ivh pcp*
> warning: pcp-2.8.12-1.x86_64.rpm: Header V4 DSA signature: NOKEY, key ID 74886b63
> error: Failed dependencies:
> initscripts is needed by pcp-2.8.12-1.x86_64
> rtld(GNU_HASH) is needed by pcp-2.8.12-1.x86_64
> qt4 >= 4.2 is needed by pcp-gui-1.4.3-1.x86_64
> rtld(GNU_HASH) is needed by pcp-gui-1.4.3-1.x86_64
>
> why make it harder to install pcp? I am using sles10sp2 x86_64.
I think this problem likely reflects that this RPM was build against a
redhat distro. Try building from source and using "./Makepkgs"
I'd love if we could do away with the distro-specific dependencies, but
I don't think it's entirely possible. We likely need to create an
additional level of directories on the download site:
download/rpm/redhat
download/rpm/suse
mh
--
Martin Hicks || mort@bork.org || PGP/GnuPG: 0x4C7F2BEE
From nscott@aconex.com Thu Jul 16 18:37:48 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6GNblwo044599
for ; Thu, 16 Jul 2009 18:37:48 -0500
X-ASG-Debug-ID: 1247787968-735b02500000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id B9CB1A7FE2B
for ; Thu, 16 Jul 2009 16:46:09 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id FrStWjwxR2eis0IC for ; Thu, 16 Jul 2009 16:46:09 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP
id 992B562FE9D; Fri, 17 Jul 2009 09:38:24 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id kxoHmz6r82xHHmUt; Fri, 17 Jul 2009 09:38:24 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id C2C8AA503DD;
Fri, 17 Jul 2009 09:37:48 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 7DBA44FD85;
Fri, 17 Jul 2009 09:38:24 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id wFN3dSc36IgG; Fri, 17 Jul 2009 09:38:20 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 56BFA4FD82;
Fri, 17 Jul 2009 09:38:20 +1000 (EST)
Date: Fri, 17 Jul 2009 09:38:20 +1000 (EST)
From: Nathan Scott
To: Martin Hicks
Cc: pcp@oss.sgi.com, David Wright
Message-ID: <721601120.695111247787500319.JavaMail.root@mail-au.aconex.com>
In-Reply-To: <20090716174819.GV5068@laplace.bork.org>
X-ASG-Orig-Subj: Re: [pcp] Getting harder to install PCP
Subject: Re: [pcp] Getting harder to install PCP
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247787970
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3601
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
----- "Martin Hicks" wrote:
> On Thu, Jul 16, 2009 at 12:23:41PM -0500, David Wright wrote:
> >
> > The latest pcp rpm wont install anymore.
> >
> > trng180:~/Desktop # rpm -ivh pcp*
> > warning: pcp-2.8.12-1.x86_64.rpm: Header V4 DSA signature: NOKEY,
> key ID 74886b63
> > error: Failed dependencies:
> > initscripts is needed by pcp-2.8.12-1.x86_64
> > rtld(GNU_HASH) is needed by pcp-2.8.12-1.x86_64
> > qt4 >= 4.2 is needed by pcp-gui-1.4.3-1.x86_64
> > rtld(GNU_HASH) is needed by pcp-gui-1.4.3-1.x86_64
> >
> > why make it harder to install pcp? I am using sles10sp2 x86_64.
>
> I think this problem likely reflects that this RPM was build against
> a
> redhat distro. Try building from source and using "./Makepkgs"
>
> I'd love if we could do away with the distro-specific dependencies,
> but
Those deps are all generated by rpm on the fly too (except for qt4, which
is build-time conditional in build/rpm/pcp-gui.spec.in) so I don't think
we can do away with those at all.
> I don't think it's entirely possible. We likely need to create an
> additional level of directories on the download site:
>
> download/rpm/redhat
> download/rpm/suse
Yeah, possibly even more specific, like "rhel5" and "sles10", etc?
cheers.
--
Nathan
From nscott@aconex.com Fri Jul 17 00:38:29 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6H5cS4C066892
for ; Fri, 17 Jul 2009 00:38:29 -0500
X-ASG-Debug-ID: 1247809147-77e9024b0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 0792513A224C
for ; Thu, 16 Jul 2009 22:39:07 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id yFpOWd2Y41UuYOMS for ; Thu, 16 Jul 2009 22:39:07 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 5E1EE6EE0FF
for ; Fri, 17 Jul 2009 15:39:06 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id P6V5TAZJryGkEHdu for ; Fri, 17 Jul 2009 15:39:06 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 659F7A503DD
for ; Fri, 17 Jul 2009 15:38:30 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 477BB4FD84
for ; Fri, 17 Jul 2009 15:39:06 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id bdHrKaYwC8DD for ;
Fri, 17 Jul 2009 15:39:02 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 36B744FD82
for ; Fri, 17 Jul 2009 15:39:02 +1000 (EST)
Date: Fri, 17 Jul 2009 15:39:02 +1000 (EST)
From: Nathan Scott
To: pcp
Message-ID: <2138078243.727161247809142154.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcpqa updates
Subject: pcpqa updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1247809149
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0178
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.52
X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3622
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
0.50 BSF_RULE7568M Custom Rule 7568M
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/pcp/pcpqa.git
648 | 99 ++++++++++++++++++++++++++++++++++++++++++++++++
648.out | 51 ++++++++++++++++++++++++
group | 1
owner | 1
src-oss/.gitignore | 4 +
src-oss/GNUmakefile | 6 ++
src-oss/mmv_genstats.c | 5 ++
src-oss/mmv_instances.c | 92 ++++++++++++++++++++++++++++++++++++++++++++
8 files changed, 257 insertions(+), 2 deletions(-)
commit a5f22139490fc396aac748fcadcb943de77f0b14
Author: Nathan Scott
Date: Fri Jul 17 15:36:33 2009 +1000
Yet more QA test coverage for the MMV PMDA.
New QA test and test program to exercise MMV PMDA instance
domain handling, particularly in the presence of multiple
files.
From wwwrun@oss.sgi.com Sun Jul 19 18:48:56 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-1.3 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00
autolearn=ham version=3.3.0-rupdated
Received: from oss.sgi.com (localhost [127.0.0.1])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6JNmtsw001265
for ; Sun, 19 Jul 2009 18:48:56 -0500
Received: (from wwwrun@localhost)
by oss.sgi.com (8.14.3/8.14.3/Submit) id n6JNmt2R001264;
Sun, 19 Jul 2009 18:48:55 -0500
Date: Sun, 19 Jul 2009 18:48:55 -0500
From: bugzilla-daemon@oss.sgi.com
To: pcp@oss.sgi.com
Subject: [Bug 843] New: Confused state of AutoScale and Min/Max fields
X-Bugzilla-Reason: CC
X-Bugzilla-Type: newchanged
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Classification: Unclassified
X-Bugzilla-Product: pcp
X-Bugzilla-Component: pcp-glider
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: ndonaldson@aconex.com
X-Bugzilla-Status: NEW
X-Bugzilla-Priority: P5
X-Bugzilla-Assigned-To: nathans@debian.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Changed-Fields:
Message-ID:
Auto-Submitted: auto-generated
Content-Type: text/plain; charset="UTF-8"
MIME-Version: 1.0
http://oss.sgi.com/bugzilla/show_bug.cgi?id=843
Summary: Confused state of AutoScale and Min/Max fields
Product: pcp
Version: unspecified
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P5
Component: pcp-glider
AssignedTo: nathans@debian.org
ReportedBy: ndonaldson@aconex.com
CC: pcp@oss.sgi.com
Estimated Hours: 0.0
Classification: Unclassified
Created an attachment (id=276)
--> (http://oss.sgi.com/bugzilla/attachment.cgi?id=276)
Visible proof of confused state of UI components
I've just loaded a (predefined) view with six charts, but wanted to make a few
adjustments to the vertical scale.
1) click on a (line) chart; select Edit -> Chart; in the Chart tab, click on
the 'Off' radio-button for AutoScale; set some non-zero maximum value; click
[OK]
2) click on another (line) chart; select Edit -> Chart; in the Chart tab, the
AutoScale radio-button is set to 'on', but the Min/Max fields are enabled, and
can be changed (I didn't try to save them, though). ***This should not be the
case***
Clicking the 'on' radio-button, *or* clicking [Cancel], and subsequently
selecting Edit -> Chart recovers the correct situation temporarily, in the
second chart, however...
3) click on the original (line) chart; select Edit -> Chart; in the Chart tab,
the radio-button for AutoScale is 'off', but now the Min/Max fields are
disabled
--
Configure bugmail: http://oss.sgi.com/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
From goodwinos@gmail.com Mon Jul 20 20:10:11 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6L1AAGL125320
for ; Mon, 20 Jul 2009 20:10:11 -0500
X-ASG-Debug-ID: 1248138651-5733021e0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id F1C31374D13
for ; Mon, 20 Jul 2009 18:10:51 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id j9omowgItJMOGj04 for ; Mon, 20 Jul 2009 18:10:51 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6L1Ap4p021860
for ; Mon, 20 Jul 2009 21:10:51 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6L1Aohk028921
for ; Mon, 20 Jul 2009 21:10:50 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6L1AnHJ013004
for ; Mon, 20 Jul 2009 21:10:49 -0400
Message-ID: <4A651598.4080102@gmail.com>
Date: Tue, 21 Jul 2009 11:10:48 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: pcp@oss.sgi.com
X-ASG-Orig-Subj: pcp-gui updates for Fedora10/11/12
Subject: pcp-gui updates for Fedora10/11/12
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1248138652
X-Barracuda-Bayes: INNOCENT GLOBAL 0.2487 1.0000 -0.5814
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -0.58
X-Barracuda-Spam-Status: No, SCORE=-0.58 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.3944
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Nathan, can you rv this and merge if OK? Thanks.
In the 'master' branch of git://oss.sgi.com/markgw/pcp/pcp-gui.git
commit 843c3557f9db566b80ab40baab785d4aaeafb85b
Author: Mark Goodwin
Date: Tue Jul 21 10:41:30 2009 +1000
minor build and packaging fix for Fedora10/11
Signed-off-by: Mark Goodwin
diff --git a/.gitignore b/.gitignore
index 9030532..5131615 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,4 @@ qa/src/qmc_hosts/qmc_hosts
qa/src/qmc_indom/qmc_indom
qa/src/qmc_metric/qmc_metric
qa/src/qmc_source/qmc_source
+debug*.list
diff --git a/src/libapp/GNUmakefile b/src/libapp/GNUmakefile
index e13af80..1525471 100644
--- a/src/libapp/GNUmakefile
+++ b/src/libapp/GNUmakefile
@@ -11,7 +11,7 @@ CONFFILES = $(PROJECT)
LSRCFILES = $(PROJECT).in $(SOURCES) $(HEADERS) $(UIFILES) $(QRCFILE)
LDIRT = Makefile*
-SUBDIRS = views images
+SUBDIRS = images
default: $(PROJECT)
$(SUBDIRS_MAKERULE)
From mort@sgi.com Tue Jul 21 16:43:11 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6LLhAQr195380
for ; Tue, 21 Jul 2009 16:43:11 -0500
Received: from attica.americas.sgi.com (attica.americas.sgi.com [128.162.236.44])
by relay2.corp.sgi.com (Postfix) with ESMTP id 30C0D30407E
for ; Tue, 21 Jul 2009 14:43:51 -0700 (PDT)
Received: by attica.americas.sgi.com (Postfix, from userid 44682)
id DC0FFA23C440; Tue, 21 Jul 2009 16:43:50 -0500 (CDT)
Date: Tue, 21 Jul 2009 16:43:50 -0500
From: Martin Hicks
To: pcp@oss.sgi.com
Subject: pcp updates
Message-ID: <20090721214350.GG14368@alcatraz.americas.sgi.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.17 (2007-11-01)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Updates applied to git://oss.sgi.com/mort/pcp.git
mort@socrates:~/src/pcp$ git log ^origin/dev mort-dev
commit fcca6023cd689ea5f48c6f6c538e2e21af67d32e
Author: Martin Hicks
Date: Tue Jul 21 17:34:05 2009 -0400
Do not create infiniband pmda config file by default
In order to simplify monitoring in the simple case where a
machine has a single Infiniband interface, the config file is
no longer created by default. Instead, only local ports are
monitored. This does solve the problem where if an infiniband
card is replaced in a machine that the administrator no longer
has to remove the /var/lib/pcp/pmdas/ib/config file in order
to restore infiniband monitoring.
For more advanced usage where static instance naming is required
or remote Infiniband ports must be monitored a config file can
still be created, but it is the responsibility of the administrator
to update the GUIDs if an HCA replacement is done.
commit 840243974c106daae11368730043534d4684bc59
Author: Martin Hicks
Date: Tue Jul 21 17:31:54 2009 -0400
Manpage for the infiniband PMDA
commit 7f0167d8410147a6645699b0a385dc0c3bdfa5ac
Author: Martin Hicks
Date: Tue Jul 14 14:14:31 2009 -0400
Reserve domain ID 99 for SGI Ultra Violet PMDA
From nscott@aconex.com Tue Jul 21 22:39:46 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6M3dkeb210967
for ; Tue, 21 Jul 2009 22:39:46 -0500
X-ASG-Debug-ID: 1248234026-590d024e0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 9864913C7B29
for ; Tue, 21 Jul 2009 20:40:27 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id scW3EasiGw7EOkyv for ; Tue, 21 Jul 2009 20:40:27 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id A8FF47CAF96
for ; Wed, 22 Jul 2009 13:40:25 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id E87I8EG4PLwtChhE for ; Wed, 22 Jul 2009 13:40:25 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 1FE0EA50283
for ; Wed, 22 Jul 2009 13:39:47 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 88EC24FD85
for ; Wed, 22 Jul 2009 13:40:25 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id J9iLCuJ-TnKv for ;
Wed, 22 Jul 2009 13:40:21 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id BDA424FD82
for ; Wed, 22 Jul 2009 13:40:21 +1000 (EST)
Date: Wed, 22 Jul 2009 13:40:21 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <791178811.934141248234021688.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates
Subject: pcp updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1248234028
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4049
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
[Also merged Martins tree in here now, BTW]
Changes committed to git://oss.sgi.com/nathans/pcp.git
src/cpan/PMDA/Changes | 5 +
src/cpan/PMDA/PMDA.pm | 2
src/cpan/PMDA/PMDA.xs | 3
src/cpan/PMDA/local.c | 3
src/pmdas/GNUmakefile | 3
src/pmdas/named/.gitignore | 2
src/pmdas/named/GNUmakefile | 45 ++++++++++++
src/pmdas/named/Install | 32 ++++++++
src/pmdas/named/Remove | 25 ++++++
src/pmdas/named/pmdanamed.pl | 155 ++++++++++++++++++++++++++++++++++++++++++-
src/pmns/stdpmid.pcp | 1
11 files changed, 272 insertions(+), 4 deletions(-)
commit 7f3bf2c9a2966801f95c31f049291da8434faae4
Author: Nathan Scott
Date: Wed Jul 22 13:37:47 2009 +1000
Ensure the Perl PMDA process runs in its own process group,
and ignore SIGTERM in the atexit handler. This resolves an
issue with the earlier fix for reaping children.
commit d597f63b47a9eb8140c878bbc26c1434431c3096
Author: Nathan Scott
Date: Wed Jul 22 11:52:09 2009 +1000
Comment out some diagnostics in named PMDA.
commit c9b822c236f1bf219d830d1185d16cc9e87eae4c
Author: Rodney McKee
Date: Wed Jul 22 11:44:32 2009 +1000
Add the named PMDA, initially supporting BIND 9.4.
From goodwinos@gmail.com Wed Jul 22 02:15:13 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6M7FCxO224243
for ; Wed, 22 Jul 2009 02:15:13 -0500
X-ASG-Debug-ID: 1248247445-72d601350000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id D1ED1ABE444
for ; Wed, 22 Jul 2009 00:24:05 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id c6Ry1B3PLvkgUvif for ; Wed, 22 Jul 2009 00:24:05 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6M7FsE7006785
for ; Wed, 22 Jul 2009 03:15:54 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6M7FrkD023436
for ; Wed, 22 Jul 2009 03:15:53 -0400
Received: from [10.64.176.217] (dhcp-176-217.mel.redhat.com [10.64.176.217])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6M7FpFA028853
for ; Wed, 22 Jul 2009 03:15:52 -0400
Message-ID: <4A66BCA6.2020301@gmail.com>
Date: Wed, 22 Jul 2009 17:15:50 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: pcp@oss.sgi.com
X-ASG-Orig-Subj: Re: pcp-gui updates for Fedora10/11/12
Subject: Re: pcp-gui updates for Fedora10/11/12
References: <4A651598.4080102@gmail.com>
In-Reply-To: <4A651598.4080102@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1248247446
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4064
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Nathan mentioned on IRC that I was on the wrong branch
(should be using 'stable', not 'master'). So I switched to
the stable branch and this build bug no longer occurs (I guess
src/libapp will be acquiring a 'views' directory to match it's
SUBDIRS at some point; that's probably work in progress
on the master branch).
Cheers
Mark Goodwin wrote:
> Nathan, can you rv this and merge if OK? Thanks.
> In the 'master' branch of git://oss.sgi.com/markgw/pcp/pcp-gui.git
>
> commit 843c3557f9db566b80ab40baab785d4aaeafb85b
> Author: Mark Goodwin
> Date: Tue Jul 21 10:41:30 2009 +1000
>
> minor build and packaging fix for Fedora10/11
>
> Signed-off-by: Mark Goodwin
>
> diff --git a/.gitignore b/.gitignore
> index 9030532..5131615 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -32,3 +32,4 @@ qa/src/qmc_hosts/qmc_hosts
> qa/src/qmc_indom/qmc_indom
> qa/src/qmc_metric/qmc_metric
> qa/src/qmc_source/qmc_source
> +debug*.list
> diff --git a/src/libapp/GNUmakefile b/src/libapp/GNUmakefile
> index e13af80..1525471 100644
> --- a/src/libapp/GNUmakefile
> +++ b/src/libapp/GNUmakefile
> @@ -11,7 +11,7 @@ CONFFILES = $(PROJECT)
> LSRCFILES = $(PROJECT).in $(SOURCES) $(HEADERS) $(UIFILES) $(QRCFILE)
> LDIRT = Makefile*
>
> -SUBDIRS = views images
> +SUBDIRS = images
>
> default: $(PROJECT)
> $(SUBDIRS_MAKERULE)
>
>
From jeffpc@josefsipek.net Wed Jul 22 22:59:33 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_44
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6N3xQBw028215
for ; Wed, 22 Jul 2009 22:59:28 -0500
X-ASG-Debug-ID: 1248321607-570b03890000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from josefsipek.net (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 5033C13DD3E3
for ; Wed, 22 Jul 2009 21:00:07 -0700 (PDT)
Received: from josefsipek.net (josefsipek.net [141.212.112.196]) by cuda.sgi.com with ESMTP id gSWszSBgw3TQdI67 for ; Wed, 22 Jul 2009 21:00:07 -0700 (PDT)
Received: by josefsipek.net (Postfix, from userid 1000)
id 3F0081C0F70B; Thu, 23 Jul 2009 00:00:07 -0400 (EDT)
From: "Josef 'Jeff' Sipek"
To: pcp@oss.sgi.com
Cc: "Josef 'Jeff' Sipek" , nathans@debian.org
X-ASG-Orig-Subj: [PATCH] Add the PowerDNS PMDA
Subject: [PATCH] Add the PowerDNS PMDA
Date: Thu, 23 Jul 2009 00:00:07 -0400
Message-Id: <1248321607-18043-1-git-send-email-jeffpc@josefsipek.net>
X-Mailer: git-send-email 1.6.2.4
X-Barracuda-Connect: josefsipek.net[141.212.112.196]
X-Barracuda-Start-Time: 1248321608
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4148
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Cc: nathans@debian.org
Signed-off-by: Josef 'Jeff' Sipek
---
src/pmdas/GNUmakefile | 2 +-
src/pmdas/pdns/GNUmakefile | 53 +++++++++++++
src/pmdas/pdns/Install | 31 +++++++
src/pmdas/pdns/Remove | 29 +++++++
src/pmdas/pdns/pmdapdns.pl | 186 ++++++++++++++++++++++++++++++++++++++++++++
src/pmns/stdpmid.pcp | 1 +
6 files changed, 301 insertions(+), 1 deletions(-)
create mode 100644 src/pmdas/pdns/GNUmakefile
create mode 100755 src/pmdas/pdns/Install
create mode 100755 src/pmdas/pdns/Remove
create mode 100644 src/pmdas/pdns/pmdapdns.pl
diff --git a/src/pmdas/GNUmakefile b/src/pmdas/GNUmakefile
index f1b9fef..8230be9 100644
--- a/src/pmdas/GNUmakefile
+++ b/src/pmdas/GNUmakefile
@@ -22,7 +22,7 @@ SUBDIRS = pmcd linux solaris aix darwin windows \
lmsensors process roomtemp summary hotproc jstat \
dbping memcache systemtap mysql vmware kvm ib \
bonding cluster lustrecomm mmv netfilter zimbra \
- named
+ named pdns
LDIRT = pmcd.conf
diff --git a/src/pmdas/pdns/GNUmakefile b/src/pmdas/pdns/GNUmakefile
new file mode 100644
index 0000000..eb85470
--- /dev/null
+++ b/src/pmdas/pdns/GNUmakefile
@@ -0,0 +1,53 @@
+#!gmake
+#
+# Copyright (c) 2009 Josef 'Jeff' Sipek
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+TOPDIR = ../../..
+include $(TOPDIR)/src/include/builddefs
+
+IAM = pdns
+PMDADIR = $(PCP_PMDAS_DIR)/$(IAM)
+LSRCFILES = Install Remove pmda$(IAM).pl
+LDIRT = domain.h root pmns *.log $(MAN_PAGES)
+
+ifneq ($(POD2MAN),)
+MAN_SECTION = 1
+MAN_PAGES = pmda$(IAM).$(MAN_SECTION)
+MAN_DEST = $(PCP_MAN_DIR)/man$(MAN_SECTION)
+endif
+
+default: $(MAN_PAGES)
+
+pmda$(IAM).1: pmda$(IAM).pl
+ $(POD_MAKERULE)
+
+include $(BUILDRULES)
+
+ifeq "$(TARGET_OS)" "linux"
+install: default
+ $(INSTALL) -m 755 -d $(PMDADIR)
+ $(INSTALL) -m 755 Install Remove $(PMDADIR)
+ $(INSTALL) -m 644 pmda$(IAM).pl $(PMDADIR)/pmda$(IAM).pl
+ @$(INSTALL_MAN)
+else
+install:
+endif
+
+default_pcp : default
+
+install_pcp : install
diff --git a/src/pmdas/pdns/Install b/src/pmdas/pdns/Install
new file mode 100755
index 0000000..e569c19
--- /dev/null
+++ b/src/pmdas/pdns/Install
@@ -0,0 +1,31 @@
+#! /bin/sh
+#
+# Copyright (c) 2009 Josef 'Jeff' Sipek
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Install the pdns PMDA
+#
+
+. $PCP_DIR/etc/pcp.env
+. $PCP_SHARE_DIR/lib/pmdaproc.sh
+
+iam=pdns
+perl_opt=true
+daemon_opt=false
+
+pmdaSetup
+pmdaInstall
+exit 0
diff --git a/src/pmdas/pdns/Remove b/src/pmdas/pdns/Remove
new file mode 100755
index 0000000..ea99655
--- /dev/null
+++ b/src/pmdas/pdns/Remove
@@ -0,0 +1,29 @@
+#! /bin/sh
+#
+# Copyright (c) 2009 Josef 'Jeff' Sipek
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# Remove the pdns PMDA
+#
+
+. $PCP_DIR/etc/pcp.env
+. $PCP_SHARE_DIR/lib/pmdaproc.sh
+
+iam=pdns
+
+pmdaSetup
+pmdaRemove
+exit 0
diff --git a/src/pmdas/pdns/pmdapdns.pl b/src/pmdas/pdns/pmdapdns.pl
new file mode 100644
index 0000000..7b69d3b
--- /dev/null
+++ b/src/pmdas/pdns/pmdapdns.pl
@@ -0,0 +1,186 @@
+#
+# Copyright (c) 2009 Josef 'Jeff' Sipek
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+
+use strict;
+use warnings;
+use PCP::PMDA;
+use Time::HiRes qw ( time );
+
+use vars qw( $pmda );
+my $pdns_control = '/usr/bin/pdns_control';
+
+my $cached = 0;
+my %vals = ();
+
+sub pdns_fetch_callback
+{
+ my ($cluster, $item, $inst) = @_;
+ my $metric_name = pmda_pmid_name($cluster, $item);
+ my ($path, $value, $fh);
+
+ my $now = time;
+
+ # $pmda->log("pdns_fetch_callback $metric_name $cluster:$item ($inst)\n");
+
+ if ($inst != PM_IN_NULL) { return (PM_ERR_INST, 0); }
+ if (!defined($metric_name)) { return (PM_ERR_PMID, 0); }
+
+ $metric_name =~ s/^pdns\.//;
+
+ if ($now - $cached > 1.0) {
+ # $pmda->log("pdns_fetch_callback update now:$now cached:$cached\n");
+
+ open(PIPE, "$pdns_control list |") || return (PM_ERR_APPVERSION, 0);
+ $_ = ;
+ close PIPE;
+
+ $_ =~ s/-/_/g;
+ $_ =~ s/,$//;
+ for my $kv (split(/,/, $_)) {
+ if ("$kv" eq "") {
+ last;
+ }
+
+ my ($k, $v) = split(/=/, $kv);
+ $vals{$k} = $v;
+ }
+
+ $cached = $now;
+ }
+
+ if (!defined($vals{$metric_name})) { return (PM_ERR_APPVERSION, 0); }
+ return ($vals{$metric_name}, 1);
+}
+
+$pmda = PCP::PMDA->new('pdns', 101);
+
+$pmda->add_metric(pmda_pmid(0,0), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.corrupt_packets", '', '');
+$pmda->add_metric(pmda_pmid(0,1), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.deferred_cache_inserts", '', '');
+$pmda->add_metric(pmda_pmid(0,2), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.deferred_cache_lookup", '', '');
+$pmda->add_metric(pmda_pmid(0,3), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
+ pmda_units(0,1,0,0,PM_TIME_USEC,0),
+ "pdns.latency", '', '');
+$pmda->add_metric(pmda_pmid(0,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.packetcache_hit", '', '');
+$pmda->add_metric(pmda_pmid(0,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.packetcache_miss", '', '');
+$pmda->add_metric(pmda_pmid(0,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.packetcache_size", '', '');
+$pmda->add_metric(pmda_pmid(0,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.qsize_q", '', '');
+$pmda->add_metric(pmda_pmid(0,8), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.query_cache_hit", '', '');
+$pmda->add_metric(pmda_pmid(0,9), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.query_cache_miss", '', '');
+$pmda->add_metric(pmda_pmid(0,10), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.recursing_answers", '', '');
+$pmda->add_metric(pmda_pmid(0,11), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.recursing_questions", '', '');
+$pmda->add_metric(pmda_pmid(0,12), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.servfail_packets", '', '');
+$pmda->add_metric(pmda_pmid(0,13), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.tcp_answers", '', '');
+$pmda->add_metric(pmda_pmid(0,14), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.tcp_queries", '', '');
+$pmda->add_metric(pmda_pmid(0,15), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.timedout_packets", '', '');
+$pmda->add_metric(pmda_pmid(0,16), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp_answers", '', '');
+$pmda->add_metric(pmda_pmid(0,17), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp_queries", '', '');
+$pmda->add_metric(pmda_pmid(0,18), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp4_answers", '', '');
+$pmda->add_metric(pmda_pmid(0,19), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp4_queries", '', '');
+$pmda->add_metric(pmda_pmid(0,20), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp6_answers", '', '');
+$pmda->add_metric(pmda_pmid(0,21), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+ pmda_units(0,0,1,0,0,PM_COUNT_ONE),
+ "pdns.udp6_queries", '', '');
+
+$pmda->set_fetch_callback(\&pdns_fetch_callback);
+$pmda->run;
+
+=pod
+
+=head1 NAME
+
+pmdapdns - PowerDNS performance metrics domain agent (PMDA)
+
+=head1 DESCRIPTION
+
+B is a Performance Metrics Domain Agent (PMDA) which exports
+metric values from the PowerDNS daemon.
+
+=head1 INSTALLATION
+
+If you want access to the names and values for the PowerDNS performance
+metrics, do the following as root:
+
+ # cd $PCP_PMDAS_DIR/pdns
+ # ./Install
+
+If you want to undo the installation, do the following as root:
+
+ # cd $PCP_PMDAS_DIR/pdns
+ # ./Remove
+
+B is launched by pmcd(1) and should never be executed
+directly. The Install and Remove scripts notify pmcd(1) when
+the agent is installed or removed.
+
+=head1 FILES
+
+=over
+
+=item $PCP_PMDAS_DIR/pdns/Install
+
+installation script for the B agent
+
+=item $PCP_PMDAS_DIR/pdns/Remove
+
+undo installation script for the B agent
+
+=item $PCP_LOG_DIR/pmcd/pdns.log
+
+default log file for error messages from B
+
+=back
+
+=head1 SEE ALSO
+
+pmcd(1) and pdns_control(8).
diff --git a/src/pmns/stdpmid.pcp b/src/pmns/stdpmid.pcp
index c50b86a..6f9a493 100644
--- a/src/pmns/stdpmid.pcp
+++ b/src/pmns/stdpmid.pcp
@@ -77,6 +77,7 @@ NETFILTER 97
ZIMBRA 98
UV 99
NAMED 100
+PDNS 101
### NEXT FREE SLOT ###
DBPING 244
COUNTD 245
--
1.6.2.4
From nscott@aconex.com Wed Jul 22 23:52:44 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6N4qhqr030707
for ; Wed, 22 Jul 2009 23:52:43 -0500
X-ASG-Debug-ID: 1248324805-303303140000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 576D91B0DEEF
for ; Wed, 22 Jul 2009 21:53:25 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id EGtqpoqClrnbS3Cf for ; Wed, 22 Jul 2009 21:53:25 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP
id C0D4B6F99DA; Thu, 23 Jul 2009 14:53:23 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id YQkuKIKm31dwCFZJ; Thu, 23 Jul 2009 14:53:23 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id AF968A5028B;
Thu, 23 Jul 2009 14:52:44 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id AAB094FD85;
Thu, 23 Jul 2009 14:53:23 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id kpMMpOUF6AWG; Thu, 23 Jul 2009 14:53:20 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id 062F54FD84;
Thu, 23 Jul 2009 14:53:20 +1000 (EST)
Date: Thu, 23 Jul 2009 14:53:19 +1000 (EST)
From: Nathan Scott
To: pcp
Cc: jeffpc@josefsipek.net
Message-ID: <1102402041.1010281248324799979.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp updates
Subject: pcp updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1248324806
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -1.52
X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4152
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
0.50 BSF_RULE7568M Custom Rule 7568M
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/nathans/pcp.git
src/cpan/PMDA/PMDA.xs | 10 +-
src/pmcd/src/config.c | 4
src/pmdas/GNUmakefile | 2
src/pmdas/mysql/pmdamysql.pl | 3
src/pmdas/pdns/GNUmakefile | 45 ++++++++++
src/pmdas/pdns/Install | 27 ++++++
src/pmdas/pdns/Remove | 25 +++++
src/pmdas/pdns/pmdapdns.pl | 186 +++++++++++++++++++++++++++++++++++++++++++
src/pmns/stdpmid.pcp | 1
10 files changed, 296 insertions(+), 9 deletions(-)
commit 0b9600ede2f03f15d271ab812a703d0b606c4506
Author: Josef 'Jeff' Sipek
Date: Thu Jul 23 14:49:30 2009 +1000
Add a new PMDA for the PowerDNS daemon (www.powerdns.com).
commit df6f93cd1b2de0fc1e531cc568f4e53b73adf7e5
Author: Nathan Scott
Date: Thu Jul 23 14:32:59 2009 +1000
Remove a duplicated metric from the MySQL PMDA.
Problem reported by Josef Sipek, install of this PMDA now
fails due to reworking of the pmns generation code, before
this would have silently overwritten one metric with the
other (122 won in our production environment so I've kept
that) but now we check for this condition.
commit 737b6904574678e174e5d8b969b91edce66c759a
Author: Nathan Scott
Date: Thu Jul 23 13:26:31 2009 +1000
Improve error reporting in pmcd on Windows.
Should we be asked to open a UNIX domain socket channel to a
PMDA on Windows, improve the message for easier diagnosis.
commit c87287e790d4636e2abbd98f223daa0c67c644e8
Author: Nathan Scott
Date: Thu Jul 23 13:25:11 2009 +1000
Improve error reporting in PCP::PMDA perl module.
When failing to build the PMNS file, additional diagnostics
would be helpful to pinpoint the source of the error.
From nscott@aconex.com Fri Jul 24 00:59:44 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6O5xi8n110791
for ; Fri, 24 Jul 2009 00:59:44 -0500
X-ASG-Debug-ID: 1248415227-7770016b0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id AA6D013E523E
for ; Thu, 23 Jul 2009 23:00:27 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id d0LMhKmXMF96BwpA for ; Thu, 23 Jul 2009 23:00:27 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 304081EDD6E
for ; Fri, 24 Jul 2009 16:00:26 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id X6lppqGkiyXqwnrg for ; Fri, 24 Jul 2009 16:00:26 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id 927E9A50133
for ; Fri, 24 Jul 2009 15:59:46 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 206E54FD86
for ; Fri, 24 Jul 2009 16:00:26 +1000 (EST)
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Scanned: amavisd-new at gatekeeper.yarra.acx
Received: from gatekeeper.aconex.com ([127.0.0.1])
by localhost (gatekeeper.aconex.com [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id ekQCiTfLW3Rq for ;
Fri, 24 Jul 2009 16:00:22 +1000 (EST)
Received: from mail-au.aconex.com (mail-au.aconex.com [192.168.102.12])
by gatekeeper.aconex.com (Postfix) with ESMTP id D41FC4FD84
for ; Fri, 24 Jul 2009 16:00:21 +1000 (EST)
Date: Fri, 24 Jul 2009 16:00:21 +1000 (EST)
From: Nathan Scott
To: pcp@oss.sgi.com
Message-ID: <722640415.1074921248415221808.JavaMail.root@mail-au.aconex.com>
X-ASG-Orig-Subj: pcp-gui updates
Subject: pcp-gui updates
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
X-Originating-IP: [203.89.192.141]
X-Mailer: Zimbra 5.0.13_GA_2791.RHEL5_64 (ZimbraWebClient - [unknown] (Linux)/5.0.13_GA_2791.RHEL5_64)
X-Barracuda-Connect: mail.aconex.com[203.89.202.182]
X-Barracuda-Start-Time: 1248415228
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4251
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Status: Clean
Changes committed to git://oss.sgi.com/pcp/pcp-gui.git
src/chart/chart.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
commit b30132df196aa0bb5b1368979786b49a1619e672
Author: Nathan Scott
Date: Fri Jul 24 15:34:46 2009 +1000
Fix a longstanding chart alignment problem.
This has annoyed me for AGES, finally found a minute to fix it. There
was a wierd, permanent missing 5 pixels or so to both the left + right
of the chart canvas... reclaim this space and correctly draw any plots
that reside it. Hooray!
From jeffpc@josefsipek.net Sun Jul 26 16:12:36 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6QLCXSq044755
for ; Sun, 26 Jul 2009 16:12:35 -0500
X-ASG-Debug-ID: 1248642798-2e6900350000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from josefsipek.net (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id D86E113FC3DD
for ; Sun, 26 Jul 2009 14:13:18 -0700 (PDT)
Received: from josefsipek.net (josefsipek.net [141.212.112.196]) by cuda.sgi.com with ESMTP id UC1pBOHqVShKsGTd for ; Sun, 26 Jul 2009 14:13:18 -0700 (PDT)
Received: by josefsipek.net (Postfix, from userid 1000)
id E18A31C000F2; Sun, 26 Jul 2009 17:13:17 -0400 (EDT)
From: "Josef 'Jeff' Sipek"
To: pcp@oss.sgi.com
Cc: "Josef 'Jeff' Sipek" , nathans@debian.org
X-ASG-Orig-Subj: [PATCH] PowerDNS PMDA's packetcache_size and qsize_q are instant values, not counters
Subject: [PATCH] PowerDNS PMDA's packetcache_size and qsize_q are instant values, not counters
Date: Sun, 26 Jul 2009 17:13:17 -0400
Message-Id: <1248642797-6006-1-git-send-email-jeffpc@josefsipek.net>
X-Mailer: git-send-email 1.6.2.4
X-Barracuda-Connect: josefsipek.net[141.212.112.196]
X-Barracuda-Start-Time: 1248642798
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4499
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
Cc: nathans@debian.org
Signed-off-by: Josef 'Jeff' Sipek
---
src/pmdas/pdns/pmdapdns.pl | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/pmdas/pdns/pmdapdns.pl b/src/pmdas/pdns/pmdapdns.pl
index 00a2a0b..3971b48 100644
--- a/src/pmdas/pdns/pmdapdns.pl
+++ b/src/pmdas/pdns/pmdapdns.pl
@@ -83,10 +83,10 @@ $pmda->add_metric(pmda_pmid(0,4), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
$pmda->add_metric(pmda_pmid(0,5), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
pmda_units(0,0,1,0,0,PM_COUNT_ONE),
"pdns.packetcache_miss", '', '');
-$pmda->add_metric(pmda_pmid(0,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+$pmda->add_metric(pmda_pmid(0,6), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
pmda_units(0,0,1,0,0,PM_COUNT_ONE),
"pdns.packetcache_size", '', '');
-$pmda->add_metric(pmda_pmid(0,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
+$pmda->add_metric(pmda_pmid(0,7), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_INSTANT,
pmda_units(0,0,1,0,0,PM_COUNT_ONE),
"pdns.qsize_q", '', '');
$pmda->add_metric(pmda_pmid(0,8), PM_TYPE_U64, PM_INDOM_NULL, PM_SEM_COUNTER,
--
1.6.2.4
From mgoodwin@redhat.com Mon Jul 27 01:30:54 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6R6Urjq076989
for ; Mon, 27 Jul 2009 01:30:54 -0500
X-ASG-Debug-ID: 1248676298-597901d80000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 6D306387DD8
for ; Sun, 26 Jul 2009 23:31:38 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id A07tTPT4O9tYxGj9 for ; Sun, 26 Jul 2009 23:31:38 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6R6VbBg008681
for ; Mon, 27 Jul 2009 02:31:37 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6R6VaVJ020181
for ; Mon, 27 Jul 2009 02:31:37 -0400
Received: from [10.64.6.23] (vpn6-6-23.bne.redhat.com [10.64.6.23])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6R6VY1S013890
for ; Mon, 27 Jul 2009 02:31:35 -0400
Message-ID: <4A6D49C6.5090402@redhat.com>
Date: Mon, 27 Jul 2009 16:31:34 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: pcp@oss.sgi.com
X-ASG-Orig-Subj: [PATCH] provide pcp-devel and pcp-libs
Subject: [PATCH] provide pcp-devel and pcp-libs
Content-Type: multipart/mixed;
boundary="------------040309060802010801070507"
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1248676299
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4537
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
This is a multi-part message in MIME format.
--------------040309060802010801070507
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Make the pcp2.x RPM provide pcp-devel and pcp-libs
This RPM packaging change makes it easier for dependent
packages such as pcp-gui to transition to pcp-3.x, where
we have split packaging: pcp, pcp-devel and pcp-libs.
Signed-off-by: Mark Goodwin
---
--------------040309060802010801070507
Content-Type: text/x-patch;
name="provide_libs_devel.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="provide_libs_devel.patch"
diff --git a/build/rpm/pcp.spec.in b/build/rpm/pcp.spec.in
index a6de568..d5e03a4 100644
--- a/build/rpm/pcp.spec.in
+++ b/build/rpm/pcp.spec.in
@@ -57,6 +57,9 @@ Obsoletes: pcp <= @package_version@
Provides: pcp = @package_version@
%endif
+Provides: pcp-libs = @package_version@
+Provides: pcp-devel = @package_version@
+
Provides: libpcp.so.2
%ifarch ia64 x86_64
Provides: libpcp.so.2()(64bit)
--------------040309060802010801070507--
From goodwinos@gmail.com Mon Jul 27 01:40:05 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham
version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6R6e4dg077452
for ; Mon, 27 Jul 2009 01:40:04 -0500
X-ASG-Debug-ID: 1248676849-5fe201e40000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mx2.redhat.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id E284B387FA9
for ; Sun, 26 Jul 2009 23:40:49 -0700 (PDT)
Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id VGiOAe5f9I7A7m86 for ; Sun, 26 Jul 2009 23:40:49 -0700 (PDT)
Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26])
by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n6R6enjR011296
for ; Mon, 27 Jul 2009 02:40:49 -0400
Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199])
by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n6R6emtX023225
for ; Mon, 27 Jul 2009 02:40:48 -0400
Received: from [10.64.6.23] (vpn6-6-23.bne.redhat.com [10.64.6.23])
by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n6R6ekWX015337
for ; Mon, 27 Jul 2009 02:40:47 -0400
Message-ID: <4A6D4BEE.4070907@gmail.com>
Date: Mon, 27 Jul 2009 16:40:46 +1000
From: Mark Goodwin
User-Agent: Thunderbird 2.0.0.21 (X11/20090320)
MIME-Version: 1.0
To: pcp@oss.sgi.com
X-ASG-Orig-Subj: [PATCH] provide pcp-devel and pcp-libs
Subject: [PATCH] provide pcp-devel and pcp-libs
Content-Type: multipart/mixed;
boundary="------------070404070906020600000508"
X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26
X-Barracuda-Connect: mx2.redhat.com[66.187.237.31]
X-Barracuda-Start-Time: 1248676849
X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208
X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: -2.02
X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=
X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.4537
Rule breakdown below
pts rule name description
---- ---------------------- --------------------------------------------------
X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com
X-Virus-Status: Clean
This is a multi-part message in MIME format.
--------------070404070906020600000508
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Make the pcp2.x RPM provide pcp-devel and pcp-libs
This RPM packaging change makes it easier for dependent
packages such as pcp-gui to transition to pcp-3.x, where
we have split packaging: pcp, pcp-devel and pcp-libs.
Signed-off-by: Mark Goodwin
---
--------------070404070906020600000508
Content-Type: text/x-patch;
name="provide_libs_devel.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="provide_libs_devel.patch"
diff --git a/build/rpm/pcp.spec.in b/build/rpm/pcp.spec.in
index a6de568..d5e03a4 100644
--- a/build/rpm/pcp.spec.in
+++ b/build/rpm/pcp.spec.in
@@ -57,6 +57,9 @@ Obsoletes: pcp <= @package_version@
Provides: pcp = @package_version@
%endif
+Provides: pcp-libs = @package_version@
+Provides: pcp-devel = @package_version@
+
Provides: libpcp.so.2
%ifarch ia64 x86_64
Provides: libpcp.so.2()(64bit)
--------------070404070906020600000508--
From nscott@aconex.com Mon Jul 27 05:10:16 2009
X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com
X-Spam-Level:
X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_73
autolearn=no version=3.3.0-rupdated
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11])
by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6RAAF1O088891
for ; Mon, 27 Jul 2009 05:10:16 -0500
X-ASG-Debug-ID: 1248689978-26ca01ef0000-S8gJnT
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from postoffice2.aconex.com (localhost [127.0.0.1])
by cuda.sgi.com (Spam Firewall) with ESMTP id 903E110A9C69
for ; Mon, 27 Jul 2009 03:19:39 -0700 (PDT)
Received: from postoffice2.aconex.com (mail.aconex.com [203.89.202.182]) by cuda.sgi.com with ESMTP id cxGhazf0uMg3wS7P for ; Mon, 27 Jul 2009 03:19:39 -0700 (PDT)
Received: from postoffice.aconex.com (localhost [127.0.0.1])
by postoffice2.aconex.com (Spam & Virus Firewall) with ESMTP id 414CC20D34E
for ; Mon, 27 Jul 2009 20:10:58 +1000 (EST)
Received: from postoffice.aconex.com (postoffice.yarra.acx [192.168.102.1]) by postoffice2.aconex.com with ESMTP id xETIBir9zY8lzV6j for ; Mon, 27 Jul 2009 20:10:58 +1000 (EST)
Received: from gatekeeper.aconex.com (gatekeeper.yarra.acx [192.168.102.10])
by postoffice.aconex.com (Postfix) with ESMTP id D281BA502B7
for ; Mon, 27 Jul 2009 20:10:16 +1000 (EST)
Received: from localhost (localhost.localdomain [127.0.0.1])
by gatekeeper.aconex.com (Postfix) with ESMTP id 107204FD84
for