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

Contents

  • Table above in RDF
  • ITM Example - using fenced code blocks, see advanced syntax
  • ITM Example - original from 2012-09-25

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

    Example 1: A Performance Monitoring Record with One Copy of Each Metric

    Summary contents of the example PMR:

    1. Time collected.
    2. Link to resource that the metrics conceptually describe.
    3. Set of metrics.
    4. Several extension properties (merely to emphasize that extensions are allowed).

    This example shows the same information about the metrics in several different ways.

    1. As a simple table of metric/value pairs.
    2. As [a table mapped to the PMR syntax](#ex1-table2} that makes explicit additional information about the metrics, for example the units, that are otherwise only implied by the description.
    3. As an RDF model serialized in Turtle syntax of the entire PMR including all its metrics.
    4. As an RDF model serialized in RDF/XML syntax of the entire PMR including all its metrics.

    Table of Metric/Value Pairs

    <!– 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 –>

    Table of Metric/Value Pairs Mapped to the PMR Syntax

    <!– 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

    Turtle Syntax Example of PMR and All its Metrics

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

    Turtle Syntax Example of PMR and All its Metrics

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

    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>