Contents
Table above in RDF
ITM Example - using fenced code blocks, see advanced syntax
ITM Example - original from 2012-09-25
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
This example shows the same information about the metrics in several different ways.
- As a simple table of metric/value pairs.
- 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.
- As an RDF model serialized in Turtle syntax.
- As an RDF model serialized in RDF/XML syntax.
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 –>
<!– 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>