On Thu, 6 Dec 2007, Brad Nicholes wrote:

> >>> On 12/6/2007 at 5:22 PM, in message
> <[EMAIL PROTECTED]>, Matthias
> Blankenhaus <[EMAIL PROTECTED]> wrote:
> 
> > 
> > On Thu, 6 Dec 2007, Brad Nicholes wrote:
> > 
> >> >>> On Wed, Dec 5, 2007 at  3:48 PM, in message
> >> <[EMAIL PROTECTED]>, Matthias
> >> Blankenhaus <[EMAIL PROTECTED]> wrote: 
> >> > Hi Brad !
> >> > 
> >> > Nice meeting you yesterday :-)
> >> > 
> >> > I took a closer look at PCP to see what it uses for the meta level
> >> > description for every metric.  I thought this might be interesting for 
> >> > you.  Here you go:
> >> > 
> >> > 
> >> > - Data type:  union of all C types, plus blob
> >> > - Semantics: counter, instant, descrete
> >> > - Units and scale:  dimension and scale for space, time, count
> >> > 
> >> > 
> >> > Here are some examples:
> >> > 
> >> > 
> >> > kernel.all.load [1, 5 and 15 minute load average]
> >> > Data Type: float InDom: 60.2 0xf000002
> >> > Semantics: instant Units: none
> >> > 
> >> > kernel.percpu.cpu.user [percpu user CPU time metric from /proc/stat]
> >> > Data Type: 64-bit unsigned int InDom: 60.0 0xf000000
> >> > Semantics: counter Units: millisec
> >> > 
> >> > 
> >> > For detailed info you can check out "man PMAPI" on any SLES box.
> >> > 
> >> > 
> >> > Matthias
> >> 
> >> If I am understanding this correctly, this is actually similar in concept 
> >> to 
> > the XDR restructuring that I did for gmond.  However the metadata and the 
> > value message are split into two different structures.  The metadata is a 
> > struct that contains the basic metric description elements plus a blob 
> > (basically. It is really an array of additional elements).  The value 
> > message 
> > is a union of all of the supported data types.  Both message types 
> > (metadata, 
> > value) carry a metric ID header struct that defines the host, metric name 
> > and 
> > spoof indicator.  Since this structure is basically the header for every 
> > XDR 
> > message, even before the XDR message type is determined, the host and 
> > metric 
> > can be identified.  Take a look at lib/protocol.h.
> > 
> > Among other thinks I saw this:
> > 
> > enum Ganglia_value_types {
> >         GANGLIA_VALUE_UNKNOWN = 0,
> >         GANGLIA_VALUE_STRING = 1,
> >         GANGLIA_VALUE_UNSIGNED_SHORT = 2,
> >         GANGLIA_VALUE_SHORT = 3,
> >         GANGLIA_VALUE_UNSIGNED_INT = 4,
> >         GANGLIA_VALUE_INT = 5,
> >         GANGLIA_VALUE_FLOAT = 6,
> >         GANGLIA_VALUE_DOUBLE = 7,
> > };
> > 
> > What does int, short amount to for various platforms ?   I think to 
> > make this portable you might want to make it explicit to avoid any 
> > integral promotion problem, e.g. have INT32, UINT32, INT64, UINT64 types.
> > 
> > But maybe, I misunderstood the concept.
> > 
> > 
> 
> True, I guess I am assuming that XDR would take care of that 
> (http://en.wikipedia.org/wiki/External_Data_Representation).  The point of 
> using XDR is to allow the data packets to be transmitted across different 
> platforms.  So far in my testing I have been exchanging packets between 64 
> and 32 bit machines without any problem.  If I am assuming too much, then yes 
> the data types will have to be more granular.  Of course we are also limited 
> by the data types that XDR allows you to use when describing a packet.
> 

Makes sense !  From RFC1014 it looks like XDR provides four integer type:

[unsigned] integer : 32 bit
[unsigned] hyper integer: 64 bit

Matthias

> Brad
> 
> 
> 

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Ganglia-developers mailing list
Ganglia-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ganglia-developers

Reply via email to