HistoryViewLinks to this page Revision from: 2012 October 12 | 01:15 pm
This is the revision from 2012 October 12 at 01:15 pmView the current live version of the article.

Contents


Mapping “Real World” Metrics to the Performance Monitoring Syntax - Samples

The table below needs to be re-synched with the Mother of All Examples file that follows it

  • ems:metric resources that lack pm:metricQualifier are allowed. They may signal qualification that is implicit from the context.
  • If a Performance Monitoring provider exposes any of the metrics below, they MUST be mapped to ems:Measure resources as shown. Other predicates MAY be present, for example dcterms:title; their values are not constrained by the mapping below. Other values of the predicates shown below MAY also be present within the constraints of the resource definition, for example additional qualifier values or RDF types.

<!– Warning this table is generated from an example RDF model, do not edit it by hand –> <!– Intent to be conveyed –>

Value Description
32 Percentage Free Memory After Garbage Collection
1339.2 Request Rate Per Second
10 CPU Utilization
45911 Request Failure Count
2.4 Average Login Request Failures Per Minute
1024 CPU Speed
50 Percentage Disk Space Used
150 Percentage by which space allocated over-commits a Disk
2 Percentage of Time Thread Pool Maxed
45 % Buffer Pool Used
5 Percentage of Time JCA Thread Pool Maxed
4.5 Response Time
21 Percentage of Time DB Thread Pool Maxed
50 Virtual Memory Utilization
72787723 Garbage Collection Count
56 VM CPU Percent Ready
52 Heap Usage
310 Number of failed SQL Statements
25.3 Request Failure Rate Per Minute
3 Average JMS Get Time
50 Real Memory Utilization

<!– Warning this table is generated from an example RDF model, do not edit it by hand –>

<!– Warning this table is generated from an example RDF model, do not edit it by hand –> <!– Syntax used to convey the intent –>

rdf:type ems:numericValue ems:unitOfMeasure dcterms:title ems:metric Metric categories (from RDFS)
ems:Measure 32 dbp:Percentage Percentage Free Memory After Garbage Collection pm:MemoryAvailableAfterGarbageCollection none found
ems:Measure 1339.2 qudt:PerSecond Request Rate Per Second pm:RequestMetrics none found
ems:Measure 10 dbp:Percentage CPU Utilization pm:CpuUsed none found
ems:Measure 45911 dbp:Count_data Request Failure Count pm:RequestFailures none found
ems:Measure 2.4 pm:PerMinute Average Login Request Failures Per Minute pm:AvgLoginRequestFailures none found
ems:Measure 1024 qudt:Hertz CPU Speed pm:CpuSpeed none found
ems:Measure 50 dbp:Percentage Percentage Disk Space Used pm:DiskSpaceUsed none found
ems:Measure 150 dbp:Percentage Percentage by which space allocated over-commits a Disk pm:DiskSpaceOverCommitAmount none found
ems:Measure 2 dbp:Percentage Percentage of Time Thread Pool Maxed pm:TimeThreadPoolExhausted none found
ems:Measure 45 dbp:Percentage % Buffer Pool Used pm:BufferPoolUsed none found
ems:Measure 5 dbp:Percentage Percentage of Time JCA Thread Pool Maxed pm:TimeJCAThreadPoolExhausted none found
ems:Measure 4.5 qudt:Second Response Time pm:ResponseTimeMetrics none found
ems:Measure 21 dbp:Percentage Percentage of Time DB Thread Pool Maxed pm:TimeDatabaseThreadPoolExhausted none found
ems:Measure 50 dbp:Percentage Virtual Memory Utilization pm:VirtualMemoryUsed none found
ems:Measure 72787723 dbp:Count_data Garbage Collection Count pm:GarbageCollectionRequests none found
ems:Measure 56 dbp:Percentage VM CPU Percent Ready pm:VmCpuReady none found
ems:Measure 52 dbp:Percentage Heap Usage pm:HeapMemoryUsed none found
ems:Measure 310 dbp:Count_data Number of failed SQL Statements pm:SqlStatmentFailures none found
ems:Measure 25.3 pm:PerMinute Request Failure Rate Per Minute pm:AvgRequestFailures none found
ems:Measure 3 qudt:Second Average JMS Get Time pm:AvgJmsGetTime none found
ems:Measure 50 dbp:Percentage Real Memory Utilization pm:RealMemoryUsed none found

Table above in RDF

@prefix pm:     <http://open-services.net/ns/perfmon#> .
@prefix oslc:   <http://open-services.net/ns/core#> .
@prefix xsd:    <http://www.w3.org/2001/XMLSchema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix ex:     <http://example.org#> .  
@prefix ems:    <http://open-services.net/ns/ems#> .
@prefix crtv:   <http://open-services.net/ns/crtv#> .
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix bp:     <http://open-services.net/ns/basicProfile#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#>.

@base <http://perfmon-provider.example.org/> .

# Intent is to match table at http://open-services.net/wiki/performance-monitoring/OSLC-Performance-Monitoring-2.0-Appendix-A:-Samples/

<rec001>   # a record instance
    a pm:PerformanceMonitoringRecord ;
       # see http://open-services.net/bin/view/Main/MetricsEmsMeasure?sortcol=table;up=#Properties
       #     for how SWProjMgmtWG defines a single metric value
       # see http://open-services.net/bin/view/Main/MetricsEMS10RestApiStandardUris?sortcol=table;up=#ems_Metric
       #     for existing ems:metric values defined by SWProjMgmtWG
       ems:observes             <rec001#cpuutil10> ;  
       ems:observes             <rec001#virtmemutil50> ; 
       ems:observes             <rec001#realmemutil50> ;
       ems:observes             <rec001#diskspace50> ;
       ems:observes             <rec001#heapspace52> ;
       ems:observes             <rec001#bufferpoolused45> ;
       # 
       ems:observes             <rec001#threadpoolmaxed02> ;
       ems:observes             <rec001#jcathreadpoolmaxed05> ;
       ems:observes             <rec001#dbthreadpoolmaxed21> ;
       ems:observes             <rec001#diskovercommit150> ;
       # 
       ems:observes             <rec001#postgcfreemem32> ;
       ems:observes             <rec001#vmcpuready56> ;
       ems:observes             <rec001#cpuspeed1024> ;
       # 
       ems:observes             <rec001#avgloginfailsperminute2.4> ;
       ems:observes             <rec001#numfailedsqlstmts310> ;
       ems:observes             <rec001#garbagecollectioncount72787723> ;
       ems:observes             <rec001#avgrequestfailurerate25.3> ;
       ems:observes             <rec001#requestfailurecount45911> ;
       ems:observes             <rec001#requestfailurerate1339.2> ;
       # 
       ems:observes             <rec001#resptime4.500> ;
       ems:observes             <rec001#avgjmsgettime3.000> ;
#      ems:observes             <rec001#> ;
      # 
       pm:collectedAt          "2012-06-13T19:48:09.5Z" ; 
       #
       # Link perf mon record to CS.  They might be separate records, but in this ex they are the same record.
       dcterms:isPartOf         <recCS001> ;    # link to another resource
       # NO time zone on following implementation-specific extension property
       # This is legal in xsd:dateTime, but not great for interop
       ex:aLocalTime           "2002-05-30T09:30:10.5" ;
       ex:fooBar                0;
.
# 
<rec001#cpuutil10>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "CPU Utilization" ;
            ems:metric          <pm:CpuUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    10 ;
.
# 
<rec001#virtmemutil50>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Virtual Memory Utilization" ;
            ems:metric          <pm:VirtualMemoryUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    50 ;
.
# 
<rec001#realmemutil50>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Real Memory Utilization" ;
            ems:metric          <pm:RealMemoryUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    50 ;
.
# 
<rec001#diskspace50>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage Disk Space Used" ;
            ems:metric          <pm:DiskSpaceUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    50 ;
.
# 
<rec001#heapspace52>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Heap Usage" ;
            ems:metric          <pm:HeapMemoryUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    52 ;
.
# 
<rec001#bufferpoolused45>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "% Buffer Pool Used" ;
            ems:metric          <pm:BufferPoolUsed> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    45 ;
.
# 
<rec001#threadpoolmaxed02>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage of Time Thread Pool Maxed" ;
            ems:metric          <pm:TimeThreadPoolExhausted> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    2 ;
.
# 
<rec001#jcathreadpoolmaxed05>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage of Time JCA Thread Pool Maxed" ;
            ems:metric          <pm:TimeJCAThreadPoolExhausted> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    5 ;
.
# 
<rec001#dbthreadpoolmaxed21>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage of Time DB Thread Pool Maxed" ;
            ems:metric          <pm:TimeDatabaseThreadPoolExhausted> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    21 ;
.
# 
<rec001#diskovercommit150>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage by which space allocated over-commits a Disk" ;
            ems:metric          <pm:DiskSpaceOverCommitAmount> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    150 ;
.
# 
<rec001#postgcfreemem32>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Percentage Free Memory After Garbage Collection" ;
            ems:metric          <pm:MemoryAvailableAfterGarbageCollection> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    32 ;
.
# 
<rec001#vmcpuready56>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "VM CPU Percent Ready" ;
            ems:metric          <pm:VmCpuReady> ;
            ems:unitOfMeasure   <dbp:Percentage> ;
            ems:numericValue    56 ;
.
# 
<rec001#cpuspeed1024>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "CPU Speed" ;
            ems:metric          <pm:CpuSpeed> ;
            ems:unitOfMeasure   <qudt:Hertz> ;
            ems:numericValue    1024 ;
.
# 
<rec001#avgloginfailsperminute2.4>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Average Login Request Failures Per Minute" ;
            ems:metric          <pm:AvgLoginRequestFailures> ;
            ems:unitOfMeasure   <pm:PerMinute> ;
            ems:numericValue    2.4 ;
.
# 
<rec001#numfailedsqlstmts310>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Number of failed SQL Statements" ;
            ems:metric          <pm:SqlStatmentFailures> ;
            ems:unitOfMeasure   <dbp:Count_data> ;  # fix on wiki
            ems:numericValue    310 ;
.
# 
<rec001#garbagecollectioncount72787723>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Garbage Collection Count" ;
            ems:metric          <pm:GarbageCollectionRequests> ;
            ems:unitOfMeasure   <dbp:Count_data> ;  # fix on wiki
            ems:numericValue    72787723 ;
.
# 
<rec001#avgrequestfailurerate25.3>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Request Failure Rate Per Minute" ;
            ems:metric          <pm:AvgRequestFailures> ;
            ems:unitOfMeasure   <pm:PerMinute> ;
            ems:numericValue    25.3 ;
.
# 
<rec001#requestfailurecount45911>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Request Failure Count" ;
            ems:metric          <pm:RequestFailures> ;
            ems:unitOfMeasure   <dbp:Count_data> ;  # fix on wiki
            ems:numericValue    45911 ;
.
# 
<rec001#requestfailurerate1339.2>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Request Rate Per Second" ;
            ems:metric          <pm:RequestMetrics> ;
            ems:unitOfMeasure   <qudt:PerSecond> ;
            ems:numericValue    1339.2 ;
.
# 
<rec001#resptime4.500>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Response Time" ;
            ems:metric          <pm:ResponseTimeMetrics> ;
            ems:unitOfMeasure   <qudt:Second> ;
            ems:numericValue    4.500 ;
.
# 
<rec001#avgjmsgettime3.000>
            a                   ems:Measure ; # rdf:type
            dcterms:title       "Average JMS Get Time" ;
            ems:metric          <pm:AvgJmsGetTime> ;
            ems:unitOfMeasure   <qudt:Second> ;
            ems:numericValue    3.000 ;
.

ITM Example - using fenced code blocks, see advanced syntax

<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:oslc="http://open-services.net/ns/core#"
         xmlns:crtv="http://open-services.net/ns/crtv#"
         xmlns:dcterms="http://purl.org/dc/terms/"
         xmlns:ems="http://open-services.net/ns/ems#"
         xmlns:pm="http://open-services.net/ns/perfmon#"
         xmlns:dbpedia="http://dbpedia.org"
         xmlns:foaf="http://xmlns.com/foaf/0.1/">

ITM Example - original from 2012-09-25

<?xml version="1.0"?> 
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:oslc="http://open-services.net/ns/core#"
     xmlns:crtv="http://open-services.net/ns/crtv#"
     xmlns:dcterms="http://purl.org/dc/terms/"
     xmlns:ems="http://open-services.net/ns/ems#"
     xmlns:pm="http://open-services.net/ns/perfmon#"
     xmlns:dbpedia="http://dbpedia.org"
     xmlns:foaf="http://xmlns.com/foaf/0.1/">
<rdf:Description rdf:about="http://itmprovider.org/rec001">
    <rdf:type rdf:resource="http://open-services.net/ns/crtv#ComputerSystem"/>
    <!-- Computer System naming properties -->
    <crtv:manufacturer>IBM</crtv:manufacturer>
    <crtv:model>2007CTO</crtv:model>
    <crtv:serialNumber>LG3G3K2</crtv:serialNumber>
    <crtv:fqdn>
        maxwell.raleigh.ibm.com
    </crtv:fqdn>

    <oslc:serviceProvider>
        itmprovider.org
    </oslc:serviceProvider>

    <dcterms:date>2012-06-13T19:48:09.5Z</dcterms:date>

    <!-- Tells client there are performance metrics associated with ComputerSystem -->
    <rdf:type rdf:resource="http://open-services.net/ns/perfmon#PerformanceMonitoringRecord"/>

    <!-- Processes -->
    <pm:process rdf:resource="http://itmprovider.org/rec001#iexplore.exe"/>

    <!-- Disks -->
    <pm:disk rdf:resource="http://itmprovider.org/rec001#disk1"/>
    <pm:disk rdf:resource="http://itmprovider.org/rec001#disk2"/>

    <!-- Agents -->
    <pm:monitoringAgent rdf:resource="http://itmprovider.org/rec001#knt"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#disk1">
    <rdf:type rdf:resource="http://open-services.net/ns/crtv#StorageVolume"/>
    <dcterms:title>
        C:\
    </dcterms:title>
    <ems:observes rdf:resource="http://itmprovider.org/rec001#disk1_spaceused"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#disk1_spaceused">
    <rdf:type rdf:resource="http://open-services.net/ns/ems#Measure"/>
    <dcterms:title>
        Percentage Space Used
    </dcterms:title>
    <ems:metric rdf:resource="http://open-services.net/ns/perfmon#PercentageSpaceUsed"/>
    <ems:numericValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
        30
    </ems:numericValue>
    <ems:unitOfMeasure rdf:resource="http://dbpedia.org/Percentage"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#disk2">
    <rdf:type rdf:resource="http://open-services.net/ns/crtv#StorageVolume"/>
    <dcterms:title>
        D:\
    </dcterms:title>
    <ems:observes rdf:resource="http://itmprovider.org/rec001#disk2_spaceused"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#disk2_spaceused">
    <rdf:type rdf:resource="http://open-services.net/ns/ems#Measure"/>
    <dcterms:title>
        Percentage Space Used
    </dcterms:title>
    <ems:metric rdf:resource="http://open-services.net/ns/perfmon#PercentageSpaceUsed"/>
    <ems:numericValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
        20
    </ems:numericValue>
    <ems:unitOfMeasure rdf:resource="dbpedia.org/Percentage"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#iexplore">
    <rdf:type rdf:resource="http:open-services.net/ns/crtv#Process"/>
    <dcterms:title>
        iexplore.exe
    </dcterms:title>
    <ems:observes rdf:resource="http://itmprovider.org/rec001#iexplore-virtMem"/>
    <ems:observes rdf:resource="http://itmprovider.org/rec001#iexplore-realMem"/>
    <ems:observes rdf:resource="http://itmprovider.org/rec001#iexplore-cpuUtil"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#iexplore-virtMem">
    <rdf:type rdf:resource="http://open-services.net/ns/ems#Measure"/>
    <dcterms:title>
        Virtual Memory Utilization
    </dcterms:title>
    <ems:metric rdf:resource="http://open-services.net/ns/perfmon#VirtualMemoryUtilization"/>
    <ems:numericValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
        10
    </ems:numericValue>
    <ems:unitOfMeasure rdf:resource="http://dbpedia.org/Percentage"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#iexplore-realMem">
    <rdf:type rdf:resource="http://open-services.net/ns/ems#Measure"/>
    <dcterms:title>
        Real Memory Utilization
    </dcterms:title>
    <ems:metric rdf:resource="http://open-services.net/ns/perfmon#RealMemoryUtilization"/>
    <ems:numericValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
        5
    </ems:numericValue>
    <ems:unitOfMeasure rdf:resource="http://dbpedia.org/Percentage"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#iexplore-cpuUtil">
    <rdf:type rdf:resource="http://open-services.net/ns/ems#Measure"/>
    <dcterms:title>
        CPU Utilization
    </dcterms:title>
    <ems:metric rdf:resource="http://open-services.net/ns/perfmon#CPUUtilization"/>
    <ems:numericValue rdf:datatype="http://www.w3.org/2001/XMLSchema#double">
        5
    </ems:numericValue>
    <ems:unitOfMeasure rdf:resource="http://dbpedia.org/Percentage"/>
</rdf:Description>

<rdf:Description rdf:about="http://itmprovider.org/rec001#knt">
    <rdf:type rdf:resource="http://xmlns.com/foaf/0.1/Agent"/>
    <dcterms:title>
        Windows OS Agent
    </dcterms:title>
    <pm:availabilityStatus rdf:resource="http://open-services.net/ns/perfmon#NotRunning"/>
</rdf:Description>
</rdf:RDF>