[Oslc-pm] some metric examples

John Arwe johnarwe at us.ibm.com
Mon May 21 18:20:38 EDT 2012


Julie our fearless leader was chatting with me about a couple of concrete 
instance examples, so I wanted to get some other people thinking about 
them, the general ideas and discussions they bring up so that we can start 
generalizing into vocabulary and then resource definition(s) and/or 
shape(s).  All of which is very doable via email, so hey just using the 
community here.  This is the kind of discussion that instance examples are 
great to flush out.

As you'll quickly realize, much of the discussion is about two levels: not 
just the -value- (data) of a given metric, but also information about the 
implementation (e.g. source token) and information that is information 
about the property -other than- its value.  I like this, because having 
some background in performance analysis myself, it is something I had 
thought about some.

---------------------------------------
example 1: 
Application Resource = collection of references to monitored attributes

monitored attribute
    name: CPU Utilization
    unit of measurement: percent
    source token: percent_cpu_utilizaion
    inverse frequency: 20
    reference to value
    description: Describes how much CPU is in use verses how much is 
available for use

value
    dependsOn monitored attribute
    type: integer
    value: 80
    timestamp: 20120512

---------------------------------------
example 2: 
monitored attribute
    name: Average Pool Size
    unit of measurement:
    source token: DB Connection Pools
    inverse frequency: 20
    reference to value
    description: Describes how many connections are available in the 
database connection pool on average

value
    dependsOn monitored attribute
    type: integer
    value: 68
    timestamp: 20120512

---------------------------------------

So of course I asked a bunch of questions/comments:

JA: at least some of monitored attribute I had envisioned being in the 
provider's resource shape.  which I suspect should be fine from your pt of 
view; 1 res shape/provider/instance (you might have all instance use the 
same shape, your choice).  value.type would also live in the res shape.

JB: i'm showing the metrics as a collection in the resource
JA: I saw that - I don't think they need to be refs however.
JB: oh, so you envision value being directly in the attribute. so you 
don't think it would have its own properties
JA: that's usually simpler/less surprising. [Here I'm exposing my 
OSLC-process-bias toward doing "the simplest thing that could possibly 
work".]

JA: timestamp is interesting - is that "timestamp last collected" or was 
it intended to allow exposing a time series?  don't remember time series 
being in the scenarios, so that could be an itm extension.  w/ timestamp, 
are you trying to "just" stamp the value (not all values from 1 record 
collected at same pt in time), to expose warehouse data, both, neither? do 
you need timestamp per-value or will all values in 1 record have a single 
timestamp?
JB: timestamp per value. if underying data collectors cache at different 
intervals, what is returned to a consumer in one batch may have actually 
be collected at slightly different times.  alternatively, we could decide 
it's the time we wrote the rdf xml

JA: what is the semantics of source token, inverse freq? 
JB: source token is meant to show how the underlying service provider 
names the metric "natively". inverse frequency is the inverse of how often 
the metric is sampled.  inverse frequency is in unites of 1/seconds. so if 
monitoring is done every 5 minutes, the inverse frequency would be 300. 

JA: do you expect type=integer to vary across mult values of the same 
metric?
JB: no
[Given this answer, my earlier supposition about it belonging in the 
resource instance's shape gains support.]

JB: want to know if group thinks we should just embed 'value', and if we 
should add/remove/modify any properties
JA: some of that is going to come back to scenarios.  i.e. if we think we 
need to expose something, and it needs to be in-oslc vs an extension, it 
needs at least one scenario to motivate it.


I don't recall having seen interactions about anything -other than- " 
-value- (data) of a given metric", until David brought in his scenario 
[1].  According to [2] we have not prioritized this yet [TODO], but since 
Julie's instance examples seem to have a similar requirement, it may be 
that we have not rendered all of the implicit requirements in the others 
explicit [TODO - probably on-going as we find them]. Is that the case here 
Julie?  Where would you see your scenarios eliciting a requirement for the 
"metadata" about a metric?

>From what I can see, "the simplest thing that could possibly work" for 
these two instance examples would look like this (by-hand Turtle 
approximation warning):
<record-instance-URL>
        pm:cpuUtilization       80
        pm:connections          68
        oslc:instanceShape      <shape-URL>
        pm:collectedAt          20120512
.
<shape-URL>
        oslc:describes          <pm:MonitoringRecord>
        dcterms:title   "Julie's implementation's shape"
        oslc:property   [
                dcterms:description     "CPU utilization"
                oslc:name       "cpuUtilization"
                oslc:propertyDefinition         <pm:cpuUtilization>
                oslc:valueType          <
http://www.w3.org/2001/XMLSchema#integer>
                oslc:occurs     <oslc:Zero-or-one>
                ]
        oslc:property   [
                dcterms:description     "Average Pool Size"
                oslc:name       "connections"
                oslc:propertyDefinition         <pm:connections>
                oslc:valueType          <
http://www.w3.org/2001/XMLSchema#integer>
                oslc:occurs     <oslc:Zero-or-one>
                ]
        oslc:property   [
                dcterms:description     "Timestamp when data was 
collected"
                oslc:name       "collectedAt"
                oslc:propertyDefinition         <pm:collectedAt>
                oslc:valueType          <
http://www.w3.org/2001/XMLSchema#dateTime>
                oslc:occurs     <oslc:Zero-or-one>
                ]
.

That fails to cover the following properties; they could be covered either 
as PM extensions to resource shape, or as private extensions ... so the 
question to the WG is do/should we have scenarios where a client needs a 
consistent understanding of those, across multiple providers, and is able 
to provide implementation feedback on whatever we specify *this iteration* 
?  Right now these are not called out by scenarios, so by default we'd 
declare them all to be private extensions and/or candidates for future 
iterations.
    unit of measurement: percent
    source token: percent_cpu_utilization
    inverse frequency: 20

I assumed that one timestamp for the entire record would suffice, since 
Julie said that it might, just to pick one.  Same question around 
scenarios, implementation experience, and this iteration.  If we think it 
likely that we need to have the timestamp (or anything else) for each 
value, then we are heading into reification territory I suspect.  Per 
previous discussions, something we've chosen to avoid unless really 
necessary.

I showed the "Turtle" as a very simple class instance with concrete 
properties, rather than as a collection of metric objects and a collection 
of values, since that's what most RDF looks like.  This carries with it 
some assumptions about variability, e.g. that the type=integer part of CPU 
utilization is UNlikely to vary across multiple instances of a single 
implementation (hence a client could likely fetch the shape once, instead 
of once per monitoring record, saving message payload size at the very 
least).  Is everyone willing to live with that?  Do you need to see the 
equivalent alternative in order to have a real opinion?

Glancing quickly through [1], I'm not sure how the consumer selects the 
monitoring granularity or frequency.  The scenario appears to be assuming 
one frequency for monitoring the app, whereas in this example Julie 
appears to be assuming one frequency per metric.  If I took that at face 
value, that says we have two frequencies and then there must be some 
relationship between them - possibly also factoring in the "activation 
status" from [1] - which is sounding complicated, if that's the intent.  I 
might also think about PM defining a "monitoring SP" extension(s?), but 
now my head hurts.  I have the feeling that [1] is talking about different 
resource(s) than the other scenarios, e.g. about controlling an agent 
(which might/not be the implementation behind a PM SP), but I cannot be 
sure at this point.


[1] http://open-services.net/bin/view/Main/PmAppMonitAdmin
[2] http://open-services.net/bin/view/Main/PmScenariosV2
[3] 
http://open-services.net/bin/view/Main/OSLCCoreSpecAppendixA?sortcol=table;table=up;up=#oslc_ResourceShape_Resource


Best Regards, John

Voice US 845-435-9470  BluePages
Tivoli OSLC Lead - Show me the Scenario
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-pm_open-services.net/attachments/20120521/dae52aa0/attachment-0003.html>


More information about the Oslc-Pm mailing list