>>> 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.

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