[nm-wg] Specifying units
Andrea Westerinen (andreaw)
andreaw at cisco.com
Wed Sep 28 00:43:30 CDT 2005
In the DMTF, we address the units issue by defining it in the
meta-data/schema and requiring that implementations return the dictated
units (btw, percent is a type of "unit"). So, having the schema
definition provides the unit information. This has required
implementations to convert kbps to bps, etc. but saves the client from
doing instance-level conversions.
Andrea
> -----Original Message-----
> From: owner-nm-wg at ggf.org [mailto:owner-nm-wg at ggf.org] On
> Behalf Of Martin Swany
> Sent: Monday, September 26, 2005 3:54 PM
> To: nm-wg at ggf.org
> Subject: Re: [nm-wg] Specifying units
>
> Hi Loukik,
>
>
> > It has come to our notice that the messages in v2 responses do not
> > specify units while giving back measurement data (ex: Bandwidth
> > Utilization and Capacity). Specifying such units is necessary and
> > messages should be enhanced to support this.
> >
>
> I think that what you've actually saying is that the
> PerfSONAR prototype doesn't return units. The NM-WG v2 schema dated
> 20050802 actually includes the units in almost every
> measurement and this has been in the schema for a long time.
>
> We've talked a lot about the way to do it. The current
> examples feature units in the datum element, but as you note,
> that wastes space. Some of the examples also depict it as
> part of the metadata (which is what I've been mostly in favor
> of as the least offensive current option.) There are
> definitely issues with that -- mainly that the way that the
> data is stored is really different than the way in which it
> is collected.
>
> So, it can go in parameters, but it might be nice if it were
> able to be presented in the data section, but not in every datum.
> We've discussed this one as well, and thus far there have
> been no good solutions (or none that we found generally workable.)
>
>
> > we could specify it just once..maybe like this:
> >
> > <perfsonar:data dataUnits="bps">
> >
>
> This really requires the data element to be in a specific
> namespace or to become an omnibus for all the things that
> might be common in the enclosed datum elements. There could
> be other numeric values in the datum that require unit
> information and we'd have to add support for each of them to data.
>
> For example, from the current schema:
> <iperf:datum interval="2.0-3.0 sec" numBytes="231"
> numBytesUnits="MBytes" value="1.94" valueUnits="MBytes/sec"/>
>
> There are multiple numeric values that need unit qualification.
>
>
> > <perfsonar:data>
> > <perfsonar:units dataUnits="bps"/>
> >
>
> This one is even more thorny. We referred to this as the
> "older sibling" model as it makes siblings dependent on
> order, and we decided to avoid that so we could use things
> like hashes.
>
>
> > or something else...
> >
>
> Something else is really where we are now. What we
> have discussed is a general way to "factor out" common
> attributes or elements from a set of datum elements.
> CommonTime is an example of this, but a general mechanism
> would be nice. I proposed something before where an
> enclosed element in a datum could enclose a set of datum
> elements indicating that this value was common. It was
> greeted with a mixture of animosity and indifference, often
> coexisting in the same person's reaction.
>
> Actually, I think that the newly-discussed "bag of parameters"
> might be a partial solution to this problem but it still
> doesn't help when the things common to a set of datums are
> complex and not simple attributes (like a time range.)
>
>
> > The second comment is: Choice of units.
> >
> > After a chat with Jeff on this, I can list out two options
> >
> > Jeff suggested that: Service uses the units that the data
> is already
> > in (for ex. in rrd tool, data is in octets per second.
> > Hence service continues to provide data in octets per second) and
> > continues to return data in the same units. However, the
> units in use
> > should be clearly specified using any of the above suitable methods.
> >
>
> Data in RRDTool is not necessarily in octets per second, BTW.
> Interface utilization data is generally fetched from an
> octet counter (just to be pedantic.)
>
>
> > An option that I would like to propose is usage of units used in
> > common practice. For example, bandwidth, as known to me, is more
> > commonly expressed in bps (and their factors). A service
> should hence
> > *reasonably* strive to use the units that are in common practice.
> > Either way, specification of units using any of the
> suitable methods
> > mentioned previously is absolutely necessary.
> >
>
> I agree that reasonably trying to use units in common
> practice is a good goal. Many discussions over many years
> have led me to believe that in many cases, common practices
> aren't so common.
> For instance bandwidth is in bits per second when talking
> about link capacity or sending bogus test data, but in often
> in bytes per
> second when an application is using the data. I think that trying to
> mandate a "best practice" is a slippery slope. I vote for
> unambiguous specification and easy translation.
>
>
> > Nevertheless, if a service returns capacity and utilization in the
> > same message, it would be nice to have them both in the same units
> > (unlike the current case with Perfsonar prototype where capacity is
> > bps and utilization is octets per second)
> >
> > Question here is: Which option is ideal? Should we provide capacity
> > and utilization in the same units in our prototype?
> >
>
> We can let everyone else weigh in, but if the units are
> specified (as
> they
> can easily be) then why not just divide and convert? That
> seems easier
> to me than forcing one or the other into a less-than-natural format.
>
> martin
>
More information about the nm-wg
mailing list