public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: nathans@aconex.com
To: kenj@internode.on.net
Cc: systemtap@sources.redhat.com, pcp@oss.sgi.com
Subject: Re: [pcp] suitability of PCP for event tracing
Date: Wed, 24 Nov 2010 22:58:00 -0000	[thread overview]
Message-ID: <876162548.141311290639523809.JavaMail.root@acxmail-au2.aconex.com> (raw)
In-Reply-To: <290445718.141091290639324786.JavaMail.root@acxmail-au2.aconex.com>


----- "Ken McDonell" <kenj@internode.on.net> wrote:

> Typed strings is a concept that probably makes sense independent of
> the
> event records stuff, e.g. a simple metric that returns a
> PM_TYPE_STRING
> value where the producer and consumer agree the value is encoded in a
> particular way, e.g. JSON.

*nod*, very good point.

> One option would be to add more values to the sem (semantics) field
> of the pmDesc, e.g. PM_SEM_XML, PM_SEM_JSON, ... these additonal
> semantic
> settings would need to imply PM_SEM_DISCRETE or PM_SEM_INSTANT.  This
> would
>       * make them available for all metrics (not just the parameter(s)
>         for an event record), and
>       * involve NO PDU, API or archive changes
>       * seem more natural as it is part of the semantic metadata for
>         the metric, rather than something to be encoded in the vtype
>         header
>         of a pmValueBlock (which is where the PM_TYPE_* data for the
>         composite data types are carried around in each fetch result)
> 
> Thoughts?

Yep, that does sound like a much better approach.

> > | typedef struct {
> > |     struct timeval	er_timestamp;
> > |     int		er_nparams;	/* number of er_param[] entries */
> > |     pmEventParameter	er_param[1];
> > | } pmEventRecord;
> > 
> 
> I considered er_flags but this seems to be dependent on prior
> agreement of the producer and consumer, 

...?  To my mind, its the opposite.  The idea is that these flags
encapsulate the generic characteristics of traces, which allows a
generic client to make more sense of them.

For example, pmchart could do a decent job of displaying traces with
these flags, but it has no chance without them (cannot tell what is
a start event, whats an end event, nor how to build a hierarchy ...
for an arbitrary trace).  Thinking specifically of the gantt chart
(e.g. http://www.bootchart.org/images/bootchart.png) class of trace
visualisation here, if that helps clarify wtf I'm on about.  That is
feasible (and useful!) for arbitrary traces via er_flags, I think.

>  Also, there is no obvious place to store the
> value when the packed array of event records is expanded (it cannot
> go
> in the pmResult, so needs another allocation and return parameter for
> pmUnpackEventRecords (as you indicated later).

So, this seems to be more of an issue, yes it complicates the API a
bit ... but its the difference between something bland and something
alot more useful IMO.

> I'd prefer to see event "flags" or event "type" encoded in a specific
> parameter of the event record.  This also needs prior agreement by
> the
> consumer and the producer, enables all of the same functionality that
> er_flags would, and requires no additional API or data structure
> changes.

The problem there, as you say, is that it means client tools must all
be custom written (prior agreement)... theres really not much useful/
generic that pmchart could do with this.

> Not so ... the number of metrics per PMDA is 2^10 (items) x (2^12-1)
> (clusters) because I've only pinched one value for the cluster field.

Ah, my mistake - thats great!

> I suspect we need to wait for someone to use all this new functionality
> in anger before we will be in a position to consider tweaks to what
> has been done so far.

*nod*.  Will get a code review in too when time permits (not for a week
or two though).

cheers.

-- 
Nathan

       reply	other threads:[~2010-11-24 22:58 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <290445718.141091290639324786.JavaMail.root@acxmail-au2.aconex.com>
2010-11-24 22:58 ` nathans [this message]
2010-11-27  5:29   ` Ken McDonell
2010-11-28 19:08     ` Ken McDonell
     [not found] <534400126.208681291368854553.JavaMail.root@acxmail-au2.aconex.com>
2010-12-03  9:40 ` nathans
2010-12-03 11:13   ` Ken McDonell
     [not found] <1949991220.207641291354253203.JavaMail.root@acxmail-au2.aconex.com>
2010-12-03  5:32 ` nathans
2010-12-03  6:08   ` Ken McDonell
     [not found] <1565492777.26861289432902163.JavaMail.root@acxmail-au2.aconex.com>
2010-11-10 23:49 ` nathans
2010-11-11  1:46   ` Max Matveev
2010-11-23 20:48   ` Ken McDonell
     [not found] <1362202390.1923851286924784463.JavaMail.root@mail-au.aconex.com>
2010-10-12 23:07 ` nathans
     [not found] <2010549822.1115071284891293369.JavaMail.root@mail-au.aconex.com>
2010-09-19 10:19 ` nathans
     [not found] <1341556404.1064361284677032819.JavaMail.root@mail-au.aconex.com>
2010-09-16 23:18 ` nathans
2010-09-18 14:21   ` Ken McDonell
2010-09-19  9:28     ` Max Matveev
2010-09-19  9:49       ` Nathan Scott
     [not found] <105152664.981101284508372475.JavaMail.root@mail-au.aconex.com>
2010-09-15  3:12 ` Greg Banks
2010-09-15 12:11   ` Frank Ch. Eigler
2010-09-16  0:21     ` Greg Banks
2010-09-16  1:04       ` Frank Ch. Eigler
2010-09-16  2:07         ` Greg Banks
2010-09-16 12:40           ` Ken McDonell
2010-09-16 14:24             ` Frank Ch. Eigler
2010-09-16 15:53               ` Ken McDonell
2010-09-23 22:15                 ` Frank Ch. Eigler
2010-10-11  8:02                   ` Ken McDonell
2010-10-11 12:34                     ` Nathan Scott
2010-10-12 20:37                       ` Ken McDonell
2010-11-10  0:43                     ` Ken McDonell
     [not found] <1740408065.702181283817937875.JavaMail.root@mail-au.aconex.com>
2010-09-07  0:09 ` nathans
     [not found] <1780385660.592861283401180077.JavaMail.root@mail-au.aconex.com>
2010-09-02  4:22 ` nathans
2010-09-02  4:30   ` Greg Banks
     [not found] <1459138113.589721283398633993.JavaMail.root@mail-au.aconex.com>
2010-09-02  3:42 ` nathans
2010-09-02  4:11   ` Greg Banks
     [not found] <1010363924.405041282969375594.JavaMail.root@mail-au.aconex.com>
2010-08-28  4:24 ` nathans
2010-08-27 15:39 Frank Ch. Eigler
2010-08-29 15:55 ` [pcp] " Ken McDonell
2010-09-01 15:05   ` David Smith
2010-09-06 16:39     ` Ken McDonell
     [not found] ` <4C7A7DFE.2040606@internode.on.net>
2010-08-31  3:29   ` Greg Banks
2010-08-31 19:49   ` Frank Ch. Eigler
2010-09-01  6:25     ` Mark Goodwin
2010-09-02  2:05       ` Greg Banks
2010-09-02 19:40         ` Frank Ch. Eigler
2010-09-12 16:43     ` Ken McDonell
2010-09-13  2:21       ` Greg Banks
2010-09-13 13:29       ` Max Matveev
2010-09-13 20:53         ` Ken McDonell
2010-09-13 20:39       ` Frank Ch. Eigler

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=876162548.141311290639523809.JavaMail.root@acxmail-au2.aconex.com \
    --to=nathans@aconex.com \
    --cc=kenj@internode.on.net \
    --cc=pcp@oss.sgi.com \
    --cc=systemtap@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).