pcp
[Top] [All Lists]

Re: introductory pcp questions

To: <pcp@xxxxxxxxxxx>
Subject: Re: introductory pcp questions
From: "Mark D. Anderson" <mda@xxxxxxxxxxxxxx>
Date: Thu, 1 Feb 2001 13:04:01 -0800
References: <Pine.SGI.4.32.0102020438420.1035010-100000@xxxxxxxxxxxxxxxxxxxxxxxx>
Sender: owner-pcp@xxxxxxxxxxx
> > i've looked through the web site and through the downloads for some kind
> > of overview, and couldn't find any. i looked through the powerpoint slides
> > by ken mcdonnel, and i've read "man PCPIntro" and "man PMAPI".
> > somewhere between the trees and the earth should be a forest....
> 
> I'd consider http://oss.sgi.com/projects/pcp/ to be an overview of the
> features in the open source release of PCP.  And the link to the IRIX
> product via http://www.sgi.com/software/co-pilot/ is helpful and
> mentioned on the oss page ... if I take your questions and my answers
> and add these to the FAQ page, would that have helped?

it certainly would have helped me, but there is some sampling bias there... :)

it also would have helped if the main home page, and the distribution README,
and "man PCPIntro" would all mention where to find the overview.

note that the feature overviews aren't what i was looking for -- those i found.
the two guides look like just the thing, but without those being in the 
distribution
nor in the home page, i was lost.

> The bools are available on-line:
> These should be referenced on the oss web page, and I'll fix that.

thanks. it'd be nice to have direct links to the pdf downloads too, since the 
online browsing interface is kind of a disaster.

> PMDAs are not per-namespace ... each PMDA supports some part of a
> unified namespace, and the namespace is per-host, defined by the
> set of PMDAs installed on that host.

hmmm, maybe i need to find the overview on namespaces :).
i can see how particular values would be qualified by host, but
the names themselves comes from some authoritative metadata which
would have to be host independent. so some agent says "i know how
to report on ram.linux_meminfo on whatever host i'm on".

i guess i'm thinking of "namespace" in the xml sense where it is a unique
vocabulary used for a schema. it is used to qualify names of fields,
not names of particular values.

i've looked through the summary info in the PG on namespaces, domains, metrics,
and instances, and i'm still confused.
it seems to use the term "metric" to mean both a name for a field in a schema,
and a particular value on a particular host.
the metric name "hinv.physmem" is host-independent.
but a PMID int has a "domain" (host identifier) built in, which
i guess specifies a particular PMDA (though doesn't that limit
you to 256 PMDAs?). and there is a supposedly 1-1 mapping between
external metric names and PMIDs, yet metric names as text aren't
host-scoped. i'm so confused....

> > - license.
> > http://oss.sgi.com/projects/pcp/license.html indicates this is (mostly) 
> > LGPL, while
> > the downloads indicate it is GPL (even the libraries). This is not a 
> > trivial distinction.
> 
> The libraries are LGPL, everything else is GPL.  If you find anything
> contrary to this, please let me know the details.

um, such as the top of every single .c and .h file in the source distribution?
for example, pmcd.c says:

 * This program is free software; you can redistribute it and/or modify it
 * under the terms of version 2 of the GNU General Public License as
 * published by the Free Software Foundation.

> > - clocks
> > i see no provision for clock synchronization.
> 
> Nope.  This is system-level performance monitoring, with a bias for big
> systems, so sampling of the order of a few seconds up to tens of
> minutes ... clock skew in practise is not an issue.  We are not trying
> to do event traces that require microsecond accuracy in the
> timestamps.

but what happens if i'm trying to do a retrospective comparison of data
from multiple hosts?

> > - agent-side filtering
> > similarly, what kinds of filters can a monitor request?
> 
> There is no streams-like concept.  Each monitor is free to choose
> which metrics it wants, and for metrics with multiple instances the
> client can select one, some or all of the instances to be returned
> in each fetch.

by "filter" here i actually meant "choose which metrics it wants" -- i was 
hoping
for a summary for of the dimensions available for a query expression.
it seems that i can ask for a list of PMIDs in a time range, with
no filtering based on values.

> > if i ask for both user and system time, will it be smart enough to do this 
> > in one operation, not two?
> 
> Absolutely.  More to the point, if you ask for user time, system time,
> per disk read transfer rate, network packet rates in and out and apache
> web stats in one request, you'll get all of the answers back in a
> single message round trip.

that is good, but what i meant was, "is the agent smart enough to collect 2 
values
in one system call?" but in retrospect this is clearly up to the implementation 
of the agent,
not part of the pcp architecture.

> > - metadata
> The client explores the namespace using pmGetChildren(3) and
> pmTraversePMNS(3) for either one-level at a time expansion or recursive
> expansion.
> [ more explanation]

hmm, ok, except i'm still hung up on my lack of understanding of whether name 
resolution
is for the network, or per host. 
it would seem to me bad if different hosts used "disk.size" to mean completely 
different things,
and it would also seem bad to have multiple name resolvers floating around.
but all the docs seem to refer to these pmids, which i think are host-scoped.

> > - naming
> > can a value be given a universally unique path identifier such as 
> > "host=bar;process=89;thread=98;request_count"?
> > i suppose this would be part of that protocol definition....
> 
> You could achieve something like this in 2 ways:
> 
> a) connect to PMCD on host bar, ask for the instance name
>    "process=89;thread=98" of the metric named "request_count", or
> b) have your PMDA export the metric named "request_count" with an instance
>    name "host=bar;process=89;thread=98"
> 
> Instance names are totally controlled by each PMDA, the only requirements
> are that the external names of the instances are unique and that the PMDA
> associates a unique 32-bit number with each external name.

ok, i now feel so close to understanding naming and namespaces, i can almost 
touch it.
but i'm not there yet -- still confused about who can be authoritative about 
names,
whether there are any conventions about hierarchy in names, etc.

> > - standards compliance
> > pcp seems to use no standards, even derivatively, for anything:
> > transport-level protocol, data and log file formats, metadata 
> > representation,
> > names of particular measured values, the client or agent apis, or the name 
> > to number resolution.
> 
> No.  We did a BIG survey 7 years ago when this started, and all of the
> competing options were lame in the extreme for our operational
> environment (big machines, lots of optional bits, lots of evolutionary
> change, data of interest hiding everywhere).

yeah, it isn't an easy choice.
but frankly with every one of those components being home-grown, i'm guessing
that someone doing that same survey today would likely decide to do their
own too, and not use pcp....  :(.

-mda




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