Contents
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.
Quantity exposed |
ems:numericValue |
rdf:type |
ems:metric |
pm:metricQualifier |
ems:unitOfMeasure |
Section: Resource usage/consumption metrics |
|
|
|
|
|
CPU Utilization |
10 |
ems:Measure |
pm:ResourceUsage |
pm:CPU pm:Utilization |
dbp:Percentage |
Virtual Memory Utilization |
50 |
ems:Measure |
pm:ResourceUsage |
pm:Virtual pm:Memory |
dbp:Percentage |
Real Memory Utilization |
50 |
ems:Measure |
pm:ResourceUsage |
pm:Real pm:Memory |
dbp:Percentage |
Percentage Disk Space Used |
50 |
ems:Measure |
pm:ResourceUsage |
pm:Disk |
dbp:Percentage |
Heap Usage |
52 |
ems:Measure |
pm:ResourceUsage |
pm:Heap |
dbp:Percentage |
% Buffer Pool Used |
45 |
ems:Measure |
pm:ResourceUsage |
pm:BufferPool |
dbp:Percentage |
|
|
|
|
|
|
Percentage of Time Thread Pool Maxed |
2 |
ems:Measure |
pm:ResourceExhausted |
pm:ThreadPool |
dbp:Percentage |
Percentage of Time JCA Thread Pool Maxed |
5 |
ems:Measure |
pm:ResourceExhausted |
pm:ThreadPool pm:JCA |
dbp:Percentage |
Percentage of Time DB Thread Pool Maxed |
21 |
ems:Measure |
pm:ResourceExhausted |
pm:ThreadPool pm:Database |
dbp:Percentage |
Percentage by which space allocated over-commits a Disk |
150 |
ems:Measure |
pm:ResourceExhausted |
pm:Disk |
dbp:Percentage |
|
|
|
|
|
|
Section: Available resource metrics |
|
|
|
|
|
Percentage Free Memory After Garbage Collection |
32 |
ems:Measure |
pm:ResourceAvailable |
pm:Virtual pm:Memory |
dbp:Percentage |
VM CPU Percent Ready |
56 |
ems:Measure |
pm:ResourceAvailable |
pm:CPU pm:Virtual |
dbp:Percentage |
CPU Speed |
1024 |
ems:Measure |
pm:ResourceAvailable |
pm:CPU |
qudt:Hertz |
|
|
|
|
|
|
Section: Request metrics |
|
|
|
|
|
Average Login Request Failure Rate |
10.5 |
ems:Measure |
pm:Request |
pm:Login pm:Failure pm:Average |
qudt:PerSecond |
Average Login Request Failures Per Minute |
2.4 |
ems:Measure |
pm:Request |
pm:Login pm:Average |
pm:PerMinute |
Number of failed SQL Statements |
310 |
ems:Measure |
pm:Request |
pm:SQL pm:Failure |
qudt:Unitless |
Garbage Collection Count |
72787723 |
ems:Measure |
pm:Request |
pm:GarbageCollection |
dbp:Count_data |
Request Failure Rate Per Minute |
25.3 |
ems:Measure |
pm:Request |
pm:Failure |
pm:PerMinute |
Request Failure Count |
45911 |
ems:Measure |
pm:Request |
pm:Failure |
dbp:Count_data |
Request Rate Per Second |
1339.2 |
ems:Measure |
pm:Request |
no qualifier value |
qudt:PerSecond |
|
|
|
|
|
|
Section: Response time metrics |
|
|
|
|
|
Response Time |
4.500 |
ems:Measure |
dbp:Response_time_(technology) |
|
qudt:Second |
Average JMS Get Time |
3.000 |
ems:Measure |
pm:Request |
pm:JMS pm:Get pm:Average |
qudt:Second |
|
|
|
|
|
|
|
|
ems:Measure |
|
|
|
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>