GFD 204
GFD 204
Obsoletes
This document obsoletes GFD-R-P.098[1].
Copyright Notice
Copyright c Open Grid Forum (2006-2013). Some Rights Reserved. Distribution is unlim-
ited.
Abstract
For resources to be shared, sites must be able to exchange basic accounting and usage data in
a common format. This document describes a common format which enables the exchange
of basic accounting and usage data from different resources. This record format is intended
to facilitate the sharing of usage information, particularly in the area of the accounting of
jobs, computing, memory, storage and cloud usage but with a structure that allows an easy
extension to other resources. This document describes the Usage Record components both
in natural language form and annotated XML.
This document does not address how these records should be used, nor does it attempt to
dictate the format in which the accounting records are stored. Instead, it defines a common
exchange format. Furthermore, nothing is said regarding the communication mechanisms
employed to exchange the records, i.e. transport layer, framing, authentication, integrity,
etc.
ur-wg@ogf.org 1
GFD-R-P.204 January 2013
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.1 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 What This Document Is Not . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Format of the Record Specification . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Conventions Used in this Document . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1 Notational Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 Meta Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.2 Metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.3 Time Stamps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3 Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Supported Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 RecordIdentityBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.1 RecordId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2 CreateTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3 Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 Infrastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 SubjectIdentityBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.1 LocalUserId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 LocalGroupId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 GlobalUserId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 GlobalGroupId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5 GlobalGroupAttribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5 ComputeUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.1 CpuDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.2 WallDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.3 StartTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4 EndTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.5 ExecutionHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.5.1 Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
5.5.2 ProcessId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.5.3 Benchmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5.6 HostType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
ur-wg@ogf.org 2
GFD-R-P.204 January 2013
5.7 Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.8 NodeCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.9 ExitStatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.10 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
6 JobUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.1 GlobalJobId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.2 LocalJobId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.3 JobName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
6.4 MachineName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.5 SubmitHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.6 SubmitType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.7 Queue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.8 TimeInstant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.9 ServiceLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6.10 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
7 MemoryUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.1 MemoryClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.2 MemoryResourceCapacityUsed . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
7.3 MemoryResourceCapacityAllocated . . . . . . . . . . . . . . . . . . . . . . . . 23
7.4 MemoryResourceCapacityRequested . . . . . . . . . . . . . . . . . . . . . . . . 24
7.5 StartTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.6 EndTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.7 ExecutionHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.8 HostType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
7.9 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
8 StorageUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.1 StorageShare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.2 StorageMedia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.3 StorageClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
8.4 DirectoryPath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.5 FileCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.6 StorageResourceCapacityUsed . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
8.7 StorageLogicalCapacityUsed . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8.8 StorageResourceCapacityAllocated . . . . . . . . . . . . . . . . . . . . . . . . 27
8.9 StartTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.10 EndTime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.11 Host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.12 HostType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
8.13 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
ur-wg@ogf.org 3
GFD-R-P.204 January 2013
9 CloudUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.1 LocalVirtualMachineId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.2 GlobalVirtualMachineId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.3 Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
9.4 SuspendDuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.5 ImageId . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.6 MachineName . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.7 SubmitHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.8 TimeInstant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
9.9 ServiceLevel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
10 NetworkUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10.1 NetworkClass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10.2 NetworkInboundUsed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
10.3 NetworkOutboundUsed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
10.4 Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
11 Attributes Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
12 Field Summaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.1 RecordIdentityBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.2 SubjectIdentityBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.3 ComputeUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
12.4 JobUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.5 MemoryUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
12.6 StorageUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
12.7 CloudUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
12.8 NetworkUsageBlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
13 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.1 Full example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
13.2 Grid example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
13.3 Cloud example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
13.4 Local example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
13.5 Minimal examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13.5.1 Job record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
13.5.2 Storage record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
14 XSD Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
15 Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
16 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
17 Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
18 Intellectual Property Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
ur-wg@ogf.org 4
GFD-R-P.204 January 2013
19 Disclaimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
20 Full Copyright Notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
21 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
ur-wg@ogf.org 5
GFD-R-P.204 January 2013
1 Introduction
In order for resources to be shared, sites must be able to exchange basic accounting and
usage data in a common format. This document focuses on the representation of resource
consumption data. The document then goes on to describe an XML-based format for usage
records. The record format is intended to be specific enough to facilitate information sharing
among grid sites, yet general enough that the usage data can be used for a variety of purposes:
traditional usage accounting, charging, service usage monitoring, performance tuning, etc.
The purpose of this document is to outline the basic building blocks of the accounting record,
and how to properly represent them. All other tangential concerns such as the use, transport
mechanism, and security are out of scope for this representation layer.
1.1 Context
To comprehend the structure of the schema presented in this document, it is important to
understand the context in which this specification has been developed. The accounting of
different use-cases involves recording:
• General properties related to the record itself
• Properties related to the consumer of the resources
• Usage of one or more resources.
Hence, the usage record schema is made up of a set of blocks for general properties, consumer
and distinct resources.
1.1.1 History
Before the definition of UR-2.0 different usage record definitions building on the job account-
ing definition of UR-1.0 [1], started to surface to describe various resource usages, such as
the EMI Compute Accounting Reccord CAR [2], the EMI Storage Accounting Record StAR
[3], the EGI Cloud Usage Record CUR 1 and the Storage Accounting Implementation SAI
[4]. The definition of UR-2.0 came from the experiences of these record definitions and is
built as an easily extensible superset of these new usage records.
This document and specification do not attempt to define a comprehensive “grid accounting”
standard. As with all accounting implementations, there is no one-size-fits-all solution, that
1
https://wiki.egi.eu/wiki/Fedcloud-tf:WorkGroups:Scenario4
ur-wg@ogf.org 6
GFD-R-P.204 January 2013
will meet the needs of all projects and resource providers. This document does not address
summary records, “grid job” records, consolidated records, or anything other than an atomic
resource consumption instantiation. Sufficient resource and user information is collected to
allow for effective and appropriate levels of aggregation, consolidation, and summarization,
but the details of how sites implement these features (e.g., what grids do with the atomic
data) are beyond the scope of this document. This definition of UR-2.0 does not enter into
the details of how the Usage Record should be used or the way records are transported
from the information producers to its consumers. Neither does it enter into implementation
details of the accounting sensors.
ur-wg@ogf.org 7
GFD-R-P.204 January 2013
2.2.1 Description
2.2.2 Metric
This meta-property identifies the type of measurement used for quantifying the associated
resource consumption if there are multiple methods to measure resource usage. As an exam-
ple, disk usage may be measured as total, average, minimum or maximum usage. However,
even if pertinent to the assessed charge, this meta-property does not attempt to differentiate
between requested and utilized quantities of resource usage.
Time stamps should follow the ISO 8601[6] standard as well. This includes enumerating the
time zone, as specified in the standard.
2.3 Conventions
Unless otherwise stated, all fields are optional. A required field is only required if the
corresponding block is present.
ur-wg@ogf.org 8
GFD-R-P.204 January 2013
ur-wg@ogf.org 9
GFD-R-P.204 January 2013
3 RecordIdentityBlock
This block contains the properties related to the identity of the usage record itself.
Example
<ur:RecordIdentityBlock>
<!| Identity properties go in here -->
</ur:RecordIdentityBlock>
3.1 RecordId
A record identity uniquely defines a record in the set of all usage records of the accounting
context.
• RecordId MUST be present in the RecordIdentityBlock.
• RecordId MUST be a string.
Example
<ur:RecordId>"host.example.org/ur/87912469269276"</ur:RecordId>
3.2 CreateTime
The time when this particular Usage Record was created.
• CreateTime MUST be present in the RecordIdentityBlock.
• CreateTime MUST be an ISO 8601:2004 timestamp.
Example
<ur:CreateTime>2013-05-09T09:06:52Z</ur:CreateTime>
3.3 Site
The site at which the resource is located. This property should contain a descriptive name
of the group of resources which are accounted for in the record. The Site value should be
constructed in such a way that it is unique within the context where it is used.
• Site MUST be a string.
Example
<ur:Site>"ACME-University"</ur:Site>
ur-wg@ogf.org 10
GFD-R-P.204 January 2013
3.4 Infrastructure
The infrastructure where the resource was used (e.g., EGI or OSG).
• Infrastructure MUST be a string.
• The attribute description SHOULD be used to give additional information on the used
infrastructure.
Example
<ur:Infrastructure ur:description="U.S Open Science Grid">"OSG"</ur:Infrastructure>
ur-wg@ogf.org 11
GFD-R-P.204 January 2013
4 SubjectIdentityBlock
This block contains the properties related to the identity of the subject accounted for.
There are many ways to identify a subject or a group and it depends on the infrastructure
used. Thus, all fields in this block are optional. A community that wants to exchange
usage information has to decide on a particular identification. This should be reflected in a
community specific profile associated with this block that defines at least one field that must
be present.
Example
<ur:SubjectIdentityBlock>
<!| Identity properties go in here -->
</ur:SubjectIdentityBlock>
4.1 LocalUserId
The local identity of the user accountable for the resource consumption (e.g., the Unix user).
• LocalUserId MUST be a string.
Example
<ur:LocalUserId>"johndoe"</ur:LocalUserId>
4.2 LocalGroupId
The local group accountable for the resource consumption (e.g., Unix group).
• LocalGroupId MUST be a string.
Example
<ur:LocalGroupId>"projectA"</ur:LocalGroupId>
4.3 GlobalUserId
The global identity of the user accountable for the resource consumption. The property
should identify the user globally, such that clashes do not happen accidentally, e.g. it could
be an X500 identity.
• GlobalUserId MUST be a string.
Example
ur-wg@ogf.org 12
GFD-R-P.204 January 2013
<ur:GlobalUserId>"/O=Grid/OU=example.org/CN=John Doe"</ur:GlobalUserId>
4.4 GlobalGroupId
The global group accountable for the resource consumption. The property should identify
the group globally, such that clashes do not happen accidentally, e.g. using a Fully Qualified
Domain Name (FQDN) to construct it. In a Grid context, this would typically be the name
of the Virtual Organization (VO).
• GlobalGroupId MUST be a string.
Example
<ur:GlobalGroupId>"binarydataproject.example.org"</ur:GlobalGroupId>
4.5 GlobalGroupAttribute
Supplemental traits of the group property, e.g., a sub-group, role or authority. This makes
it possible to account for segments of a group, while still being able to account for the group
as a whole. The attribute type denotes the type of the group property.
• GlobalGroupAttribute MAY be present multiple times.
• GlobalGroupAttribute MUST be a string.
• If GlobalGroupAttribute is specified, GlobalGroupId MUST be present.
• If GlobalGroupAttribute is specified, the attribute type MUST exist.
• The attribute type MUST be a string.
Example
<ur:GlobalGroupAttribute ur:type="subgroup">ukusers</ur:GlobalGroupAttribute>
ur-wg@ogf.org 13
GFD-R-P.204 January 2013
5 ComputeUsageBlock
This block contains the properties related to compute usage.
Example
<ur:ComputeUsageBlock>
<!|Compute Record properties go in here -->
</ur:ComputeUsageBlock>
5.1 CpuDuration
The CPU time consumed. If the task ran on many cores/processors/nodes, all separate
consumptions shall be aggregated in this value. This has an impact for example on MPI
usage, where the consumption of all the “nodes” get aggregated into this CPU consumption.
• CpuDuration MUST contain a time duration as defined in ISO 8601:2004[6].
Example
<ur:CpuDuration>PT3600S</ur:CpuDuration>
5.2 WallDuration
WallClock time elapsed during the process execution. In the case of parallel applications
(like MPI) WallDuration might be lower than CpuDuration.
• WallDuration MUST contain a time duration as defined in ISO 8601:2004[6].
Example
<ur:WallDuration>PT3600S</ur:WallDuration>
5.3 StartTime
A timestamp indicating the time at which the measured resource consumption started. To-
gether with EndTime this defines a period over which the resource has been consumed.
• StartTime MUST be present in the ComputeUsageBlock.
• StartTime MUST be an ISO 8601:2004 timestamp.
• The time zone may be specified as Z (UTC) or (+—-)hh:mm. Time zones that are not
specified are considered undetermined.
Example
ur-wg@ogf.org 14
GFD-R-P.204 January 2013
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
5.4 EndTime
A timestamp indicating the time at which the measured resource consumption ended. To-
gether with StartTime this defines a period over which the resource has been consumed.
• EndTime MUST be present in the ComputeUsageBlock.
• EndTime MUST be an ISO 8601:2004 timestamp.
• The time zone may be specified as Z (UTC) or (+—-)hh:mm. Time zones that are not
specified are considered undetermined.
Example
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
5.5 ExecutionHost
This property is a container for various information about the host where the application was
executed. As an example, in case of MPI processes, more than one ExecutionHost property
can be specified.
• ExecutionHost MAY be present multiple times.
• ExecutionHost MUST NOT have a value.
• ExecutionHost MUST contain at least a child element.
Example
<ur:ExecutionHost>
<!-- Various host properties go in here -->
</ur:ExecutionHost>
5.5.1 Hostname
ur-wg@ogf.org 15
GFD-R-P.204 January 2013
5.5.2 ProcessId
The process ID of the process running at the host. For example this could be used in case
of MPI processes that use multiple hosts.
• ProcessId MUST be a child of ExecutionHost.
• ProcessId MAY be present multiple times in Host.
• ProcessId MUST be a non-zero integer.
Example
<ur:ProcessId>1042</ur:ProcessId>
5.5.3 Benchmark
5.6 HostType
The type of service according to a namespace-based classification. The namespace MAY be
related to a middleware name, an organization or other concepts. org.ogf.glue.* is reserved
for types defined by the OGF GLUE Working Group2 .
2
https://forge.ogf.org/sf/go/projects.glue-wg/wiki
ur-wg@ogf.org 16
GFD-R-P.204 January 2013
5.7 Processors
The number of processors used or requested. A processor definition may be dependent on the
machine architecture. Typically, Processors is equivalent to the number of physical CPUs
used. For example, if a process uses two cluster “nodes”, each node having 16 CPUs each,
the total number of processors would be 32. In addition, a processor can consist of several
cores which may be used independently. In the example above the use of dual-core processors
would thus increase the number to 64.
• Processors MUST be a non-zero integer.
Example
<ur:Processors>1</ur:Processors>
5.8 NodeCount
Number of nodes used. A node definition may be dependent on the architecture, but typically
a node is a physical machine. For example a cluster of 16 physical machines with each
machine having one processor each is a 16 “node” machine, each with one “processor”. A
16 processor SMP machine however, is one physical node (machine) with 16 processors.
• NodeCount MUST be a non-zero integer.
Example
<ur:NodeCount>1</ur:NodeCount>
5.9 ExitStatus
This element allows the numeric exit status value for the application to be specified.
• ExitStatus SHOULD be present in the ComputeUsageBlock.
• ExitStatus MUST be an integer.
ur-wg@ogf.org 17
GFD-R-P.204 January 2013
5.10 Charge
The charge applied to the users resource usage. Charge is a site dependent value and may
be used for economic accounting purposes.
• Charge MUST be a float.
Example
<ur:Charge>1.75</ur:Charge>
ur-wg@ogf.org 18
GFD-R-P.204 January 2013
6 JobUsageBlock
The block is intended to be used for jobs submitted to a batch system, a grid, or some similar
distributed computing infrastructure.
Example
<ur:JobUsageBlock>
<!|Job Record properties go in here -->
</ur:JobUsageBlock>
6.1 GlobalJobId
The global identity of the job. The property should identify the job globally, such that
clashes do not happen. This could be a combination of a time stamp, a local job id and a
host name.
• The GlobalJobId field type MUST be a string.
Example
<ur:GlobalJobId>"host.example.org/ab1234/2013-05-09T09:06:52Z"</ur:GlobalJobId>
6.2 LocalJobId
The local identity of the job, for example the ID the job was assigned by the local resource
management system (LRMS).
• LocalJobId MUST be a string.
Example
<ur:LocalJobId>"ab1234"</ur:LocalJobId>
6.3 JobName
A descriptive name of the job.
• JobName MUST be a string.
Example
<ur:JobName>"HiggsGammaGamma42"</ur:JobName>
ur-wg@ogf.org 19
GFD-R-P.204 January 2013
6.4 MachineName
A descriptive name of the machine on which the job ran. This may be a system hostname,
the LRMS server hostname or a sites name for a cluster of machines. The identification
of the machine by name may assume the context of the site or Grid in which the machine
participates, i.e. machine names may be unique within a specific site or Grid, but do not
need to be unique globally.
• MachineName SHOULD be present in the JobUsageBlock.
• MachineName MUST be a string.
Example
<ur:MachineName>"ce.example.org"</ur:MachineName>
6.5 SubmitHost
The host from which the jobs was submitted.
• In a Grid environment SubmitHost MUST report the Computing Element Unique ID.
• The SubmitHost field type MUST be a string.
Example
<ur:SubmitHost>
"nordugrid-cluster-name=ce.example.org,Mds-Vo-name=local,o=grid"
</ur:SubmitHost>
6.6 SubmitType
The purpose of this element is to mark whether the job was submitted locally or through
a (Grid) middleware. At least the values “local” and “grid” MUST be supported. The at-
tribute description SHOULD be used to give additional information on the used middleware.
• SubmitType MUST be a string.
• The attribute description SHOULD be used.
• The attribute description MUST be a string.
• This value should be defined in a community specific profile.
Example
<ur:SubmitType ur:description="ARC CE">grid</ur:SubmitType>
ur-wg@ogf.org 20
GFD-R-P.204 January 2013
6.7 Queue
The name of the queue from which the job was executed or submitted.
• Queue MUST be a string.
• The attribute description MAY be specified.
• The attribute description MUST be a string.
Example
<ur:Queue ur:description="execution">"Bigmem"</ur:Queue>
6.8 TimeInstant
Time instant related to the user payload. Three optional values for the attribute type are
defined as they are of common usage by batch systems. The semantic is derived from Torque.
• TimeInstant SHOULD be present in the JobUsageBlock.
• TimeInstant MAY be present multiple times.
• TimeInstant MUST be an ISO 8601:2004 timestamp.
• The attribute type MUST be a string.
• The following three values of the attribute type are defined and SHOULD be reported:
– Ctime - Time job was created
– Qtime - Time job was queued
– Etime - Time job became eligible to run
Example
<ur:TimeInstant ur:type="Etime">2013-05-31T10:59:42</ur:TimeInstant>
6.9 ServiceLevel
This property identifies the quality of service associated with the resource consumption.
Service level may represent a priority associated with the usage.
• ServiceLevel MUST be a String.
Example
<ur:ServiceLevel>BigMem</ur:ServiceLevel>
ur-wg@ogf.org 21
GFD-R-P.204 January 2013
6.10 Status
Completion status of the job. This may represent the exit status of an interactive running
process or the exit status from the batch queuing systems accounting record. The semantic
meaning of status is site dependent.
• Status MUST be of type String.
• Status MUST exist in the record.
• Status MUST support the following values:
– aborted – A policy or human intervention caused the job to cease execution.
– completed – The execution completed.
– failed – Execution halted without external intervention.
– held – Execution is held at the time this usage record was generated.
– queued – Execution was queued at the time this usage record was generated.
– started – Execution started at the time this usage record was generated.
– suspended – Execution was suspended at the time this usage record was generated.
• The Status property MAY support other values, as agreed upon within the implemen-
tation context.
Example
<ur:Status>"aborted"</ur:Status>
ur-wg@ogf.org 22
GFD-R-P.204 January 2013
7 MemoryUsageBlock
This block contains the properties related to memory usage. The block may be present
several times to account for different types of memory (e.g., RAM and swap).
Example
<ur:MemoryUsageBlock>
<!| Memory Usage properties go in here -->
</ur:MemoryUsageBlock>
7.1 MemoryClass
The class of memory used. RAM and swap must be supported but others might be specified.
This is a descriptive value, which allows the memory system to provide details about the
memory used.
• MemoryClass MUST be present in the MemoryUsageBlock.
• MemoryClass MUST be a string.
• The values “RAM” and “swap” MUST be supported.
Example
<ur:MemoryClass>"RAM"</ur:MemoryClass>
7.2 MemoryResourceCapacityUsed
The number of physical bytes used on the memory system (e.g., the amount of memory
resources used for this process). This is the main metric for measuring memory consumption.
• MemoryResourceCapacityUsed MUST be present in the MemoryUsageBlock.
• MemoryResourceCapacityUsed MUST be a positive integer.
Example
<ur:MemoryResourceCapacityUsed>14728</ur:MemoryResourceCapacityUsed>
7.3 MemoryResourceCapacityAllocated
The number of bytes allocated for this process on the memory system (e.g., the amount
of memory resources made available for this process). This value may be higher than the
ur-wg@ogf.org 23
GFD-R-P.204 January 2013
MemoryResourceCapacityUsed because it may also include bytes that are not really used by
the process.
• MemoryResourceCapacityAllocated MUST be a positive integer.
Example
<ur:MemoryResourceCapacityAllocated>56437</ur:MemoryResourceCapacityAllocated>
7.4 MemoryResourceCapacityRequested
The number of bytes requested by the process (e.g., the memory requested in a job descrip-
tion).
• MemoryResourceCapacityAllocated MUST be a positive integer.
Example
<ur:MemoryResourceCapacityRequested>42000</ur:MemoryResourceCapacityRequested>
7.5 StartTime
See StartTime in ComputeUsageBlock (see chapter 5.3).
7.6 EndTime
See EndTime in ComputeUsageBlock (see chapter 5.4).
7.7 ExecutionHost
See ExecutionHost in ComputeUsageBlock (see chapter 5.5).
7.8 HostType
See HostType in ComputeUsageBlock (see chapter 5.6).
7.9 Charge
See Charge in ComputeUsageBlock (see chapter 5.10).
ur-wg@ogf.org 24
GFD-R-P.204 January 2013
8 StorageUsageBlock
This block contains the properties related to storage usage.
Example
<ur:StorageUsageBlock>
<!|Storage Record properties go in here -->
</ur:StorageUsageBlock>
8.1 StorageShare
The part of the storage system which is accounted for in the record. For a storage system,
which is split into several logical parts, this can be used to account for consumption on each
of these parts. The value should be able to identity the share of the storage system, given
the storage system property.
• StorageShare MUST be a string.
Example
<ur:StorageShare>pool-003</ur:StorageShare>
8.2 StorageMedia
The media type of storage that is accounted for in the record (e.g. “disk” or “tape”.) This
allows for accounting of different backend storage types.
• StorageMedia MUST be a string.
Example
<ur:StorageMedia>disk</ur:StorageMedia>
8.3 StorageClass
The class of the stored data, e.g. “pinned”, “replicated” or “precious”. StorageClass is a
descriptive value which allows details about the class of the stored data to be provided.
• StorageClass MUST be a string.
• This value should be defined in a community specific profile.
Example
<ur:StorageClass>replicated</ur:StorageClass>
ur-wg@ogf.org 25
GFD-R-P.204 January 2013
8.4 DirectoryPath
The directory path being accounted for. If the property is included in the record, the record
should account for all usage in the directory and only that directory. For systems not
based on directories such as databases or cloud storages this might be a name defining the
collection.
• DirectoryPath MUST be a string.
Example
<ur:DirectoryPath>/projectA</ur:DirectoryPath>
8.5 FileCount
The number of files which are accounted for in the record.
• FileCount MUST be a positive non-zero integer.
Example
<ur:FileCount>42</ur:FileCount>
8.6 StorageResourceCapacityUsed
The number of bytes used on the storage system or storage share where appropriate. This is
the main metric for measuring storage resource consumption. StorageResourceCapacityUsed
should include all resources for which the identity of the record is accountable.
It should include all resources for which the identity of the record is accountable for.
StorageResourceCapacityUsed can include reserved space, file metadata, space used for re-
dundancy in RAID setups, tape holes, or similar. The decision about including such “addi-
tional” space is left to the resource owner but should be made known to the user e.g. via
the usage policy or a service level agreement. In contrast the element StorageLogicalCa-
pacityUsed denotes the pure file size (see chapter 8.7). If available, reserved space can be
recorded explicitly with StorageResourceCapacityAllocated (see chapter 8.8).
• StorageResourceCapacityUsed MUST be present in the StorageUsageBlock.
• StorageResourceCapacityUsed MUST be a non-negative integer.
• StorageResourceCapacityUsed SHOULD include all resources that are used to store the
files.
ur-wg@ogf.org 26
GFD-R-P.204 January 2013
Implementation Note:
By using bytes we avoid any possible inconsistencies which may arise due to the arbitrary
choice of 1000 or 1024 as a base. However, this also means that the number reported can be
very large. Therefore any implementation should use at least a 128-bit integer to hold this
variable (a signed 64-bit integer will overflow at 8 Exabytes).
8.7 StorageLogicalCapacityUsed
The number of “logical” bytes used on the storage system or storage share where appropriate.
The term ”logical” is used to denote the sum in bytes of the stored files files stored, i.e.
excluding reservation, any underlying replicas of files, RAID overhead etc.
• StorageLogicalCapacityUsed MUST be a non-negative integer.
Example
<ur:StorageLogicalCapacityUsed>13617</ur:StorageLogicalCapacityUsed>
Implementation Note:
8.8 StorageResourceCapacityAllocated
The number of bytes allocated on the storage system or storage share where appropriate.
Depending on the implementation this property may be equal to StorageResourceCapaci-
tyUsed. StorageResourceCapacityAllocated should only take into account space allocated to
the entity described in the record, not resources used for redundancy in RAID setups, tape
holes, or similar.
• StorageLogicalCapacityUsed MUST be a non-negative integer.
Example
ur-wg@ogf.org 27
GFD-R-P.204 January 2013
<ur:StorageResourceCapacityAllocated>14624</sr:StorageResourceCapacityAllocated>
Implementation Note:
8.9 StartTime
See StartTime in ComputeUsageBlock (see chapter 5.3).
8.10 EndTime
See EndTime in ComputeUsageBlock (see chapter 5.4).
8.11 Host
The system on which the resources have been consumed. This value should be chosen in
such a way that it globally identifies the system, on which resources are being consumed
(e.g. the Fully Qualified Domain Name of the system could be used).
• Host MUST be a string.
Example
<ur:Host>host.example.org</ur:Host>
8.12 HostType
See HostType in ComputeUsageBlock (see chapter 5.6).
8.13 Charge
See Charge in ComputeUsageBlock (see chapter 5.10).
ur-wg@ogf.org 28
GFD-R-P.204 January 2013
9 CloudUsageBlock
This block contains the properties related to cloud usage.
Example
Example
<ur:CloudUsageBlock>
<!|Cloud Record properties go in here -->
</ur:CloudUsageBlock>
9.1 LocalVirtualMachineId
The local identity of the Virtual Machine. For example, this may be the ID assigned to by
the Cloud management system.
• LocalVirtualMachineId MUST be a string.
Example
<ur:LocalVirtualMachineId>"ab1234"</ur:LocalVirtualMachineId>
9.2 GlobalVirtualMachineId
The global identity of the Virtual Machine. The property should uniquely identify the
Virtual Machine globally, such that clashes do not happen accidentally. This could be a
combination of time stamp, local Virtual Machine ID and host name.
• GlobalVirtualMachineId MUST be a string.
Example
<ur:GlobalVirtualMachineId>
host.example.org/ab1234/2013-05-09T09:06:52Z
</ur:GlobalVirtualMachineId>
9.3 Status
The status of the Virtual Machine.
• Status MUST be present in the CloudUsageBlock.
• Status MUST be string.
ur-wg@ogf.org 29
GFD-R-P.204 January 2013
9.4 SuspendDuration
The amount of time in which the Virtual Machine status was “suspended”.
• SuspendDuration MUST be present if the property Status (see chapter 9.3) of the
Virtual Machine is “suspended”.
• SuspendDuration MUST be a time duration as defined in ISO 8601:2004.
Example
<ur:SuspendDuration>PT3600S</ur:SuspendDuration>
9.5 ImageId
The ID of the image used to instanciate the Virtual Machine.
• ImageId MUST be a string.
Example
<ur:ImageId>"UbuntuImage2013"</ur:ImageId>
9.6 MachineName
See MachineName in JobUsageBlock (see chapter 6.4).
9.7 SubmitHost
See SubmitHost in JobUsageBlock (see chapter 6.5).
9.8 TimeInstant
See TimeInstant in JobUsageBlock (see chapter 6.8).
9.9 ServiceLevel
See ServiceLevel in JobUsageBlock (see chapter 6.9).
ur-wg@ogf.org 30
GFD-R-P.204 January 2013
10 NetworkUsageBlock
This block contains the properties related to network usage. The block may be present
several times to account for different types of network.
Example
<ur:NetworkUsageBlock>
<!| Network Usage properties go in here -->
</ur:NetworkUsageBlock>
10.1 NetworkClass
The class of network used. This is a descriptive value which allows details about the network
system to be provided. The attribute NetworkResourceBandwidth represents the maximum
bandwidth allowed for this NetworkClass expressed in bytes.
• NetworkClass MUST be present in the NetworkUsageBlock.
• NetworkClass MUST be a string.
• The attribute NetworkResourceBandwidth MUST be a non-zero integer.
• This value should be defined in a community specific profile.
Example
<ur:NetworkClass ur:NetworkResourceBandwidth=100000000>"Ethernet"</ur:NetworkClass>
10.2 NetworkInboundUsed
The number of physical bytes used on the network system for inbound network traffic. The
attribute SourceAddress represents the source of the inbound network traffic.
• NetworkInboundUsed MUST be present in the NetworkUsageBlock.
• The attribute NetworkInboundUsed MUST be a positive integer.
• The attribute SourceAddress MUST be a string.
Example
<ur:NetworkInboundUsed ur:SourceAddress=192.168.1.12>14728</ur:NetworkInboundUsed>
ur-wg@ogf.org 31
GFD-R-P.204 January 2013
10.3 NetworkOutboundUsed
The number of physical bytes used on the network system for outbound network traffic. The
attribute DestinationAddress represents the destination of the outbound network traffic.
• NetworkOutboundUsed MUST be present in the NetworkUsageBlock.
• NetworkOutboundUsed MUST be a positive integer.
• The attribute DestinationAddress MUST be a string.
Example
<ur:NetworkOutboundUsed ur:DestinationAddress=192.168.1.21>14728</ur:NetworkOutboundUsed>
10.4 Charge
Same as Charge in ComputeUsageBlock (see chapter 5.10).
ur-wg@ogf.org 32
GFD-R-P.204 January 2013
11 Attributes Matrix
The following attributes matrix provides an overview of the attributes used within UR2.0 in
comparison to several other standards.
UR 2.0 UR 1.0 StAR 1.0 SAI 1.0 CAR 1.0 FedCloud GLUE 2.0
1.0
Record- Record- Record-
Identity- Identity Identity
Block
RecordId Record- recordId Record- recordId Record-
Identity Identity Id/Storage-
RecordId
CreateTime createTime TimeInstant
Site Site Site Site Admin-
Domain.-
Name
Infrastructure Infrastructure
Subject- Subject- User-
Identity- Identity Identity
Block
LocalUserId LocalUserId LocalUser LocalUserId LocalUserId LocalUserId
LocalGroupId LocalGroup LocalGroup LocalGroup-
Id
GlobalUserId UserIdentity GlobalUser- GlobalUser- GlobalUser-
Name Name Name
Global- Global- Group Project- Group FQAN
GroupId Username Name
Global- Project- Group- Global- Group-
Group- Name Attribute Group Attribute
Attribute
Compute- JobIdentity
Usage-
Block
CpuDuration CpuDuration CpuDuration CpuDuration
WallDuration WallDuration WallDuration WallDuration
StartTime StartTime StartTime StartTime
EndTime EndTime EndTime EndTime
Execution- Host
Host
HostName Host Host
ProcessId ProcessId ProcessId
Benchmark ServiceLevel
HostType CloudType ServiceType t
Processors Processors Processors CpuCount
ur-wg@ogf.org 33
GFD-R-P.204 January 2013
ExitStatus ExitStatus
NodeCount NodeCount NodeCount
Charge Charge Charge
JobUsage- Job-
Block Identity
GlobalJobId GlobalJobId GlobalJobId
LocalJobId LocalJobId LocalJobId
JobName JobName JobName
Machine- Machine- Machine-
Name Name Name
SubmitHost SubmitHost SubmitHost
SubmitType
Queue Queue Queue
Time- Time-
Duration Duration
TimeInstant TimeInstant TimeInstant
ServiceLevel ServiceLevel
Extensions Extensions
Status Status Status
Memory-
Usage-
Block
Memory- Memory/ Memory/ Memory
Class Swap Swap
Memory-
Resource-
Capacity-
Used
Memory- Memory/ Memory/ Memory
Resource- Swap Swap
Capacity-
Allocated
Memory-
Resource-
Capacity-
Requested
StartTime
EndTime
Execution-
Host
HostName Host Host
ProcessId ProcessId ProcessId
Benchmark ServiceLevel
HostType CloudType ServiceType t
Charge
ur-wg@ogf.org 34
GFD-R-P.204 January 2013
Storage-
Usage-
Block
Storage- StorageShare
Share
Storage- (Disk) StorageMedia
Media
StorageClass StorageClass ServiceLevel
Directory- Directory- Project-
Path Path Partition
FileCount FileCount
Storage- Disk Resource- Disk Disk
Resource- Capacity-
Capacity- Used
Used
Storage- Disk Logical-
Logical- Capacity-
Capacity- Used
Used
Storage- Resource-
Resource- Capacity-
Capacity- Allocated
Allocated
StartTime StartTime Time-
Instant/
Time-
Duration
EndTime EndTime Time-
Instant/
Time-
Duration
Host Storage- Host CloudType
System
HostType StorageType ServiceType t
Charge Charge
LocalFileId
GlobalFileId
Status
SubmitHost
Operation-
Type
Cloud-
Usage-
Block
ur-wg@ogf.org 35
GFD-R-P.204 January 2013
Local- Machine-
Virtual- Name
MachineId
Global- VMUUID
Virtual-
MachineId
Status Status
Suspend- Suspend-
Duration Duration
ImageId ImageId
TimeInstant
ServiceLevel
SubmitHost
Machine-
Name
Network-
Usage-
Block
Network- Network-
Class Type
Network-
Resource-
Bandwidth
Network- Network Network Network-
Inbound- Inbound
Used
Source-
Address
Network- Network Network Network-
Outbound- Outbound
Used
Destination-
Address
Protocol-
Type
Charge Charge
ur-wg@ogf.org 36
GFD-R-P.204 January 2013
12 Field Summaries
In the following section a summary of each UR2.0 block is provided.
12.1 RecordIdentityBlock
12.2 SubjectIdentityBlock
12.3 ComputeUsageBlock
ur-wg@ogf.org 37
GFD-R-P.204 January 2013
12.4 JobUsageBlock
12.5 MemoryUsageBlock
ur-wg@ogf.org 38
GFD-R-P.204 January 2013
12.6 StorageUsageBlock
12.7 CloudUsageBlock
ur-wg@ogf.org 39
GFD-R-P.204 January 2013
12.8 NetworkUsageBlock
ur-wg@ogf.org 40
GFD-R-P.204 January 2013
13 Examples
13.1 Full example
Full example including all defined elements. Note that this does not necessarily make a
useful working example as some resource blocks do not necessarily make sense when used
together in a single record.
Example
<?xml version="1.0" encoding="UTF-8"?>
<ur:UsageRecord xmlns="http://schema.ogf.org/urf/2013/04/urf"
xmlns:ur="http://schema.ogf.org/urf/2013/04/urf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schema.ogf.org/urf/2013/04/urf">
<ur:RecordIdentityBlock>
<ur:RecordId>"host.example.org/ur/87912469269276"</ur:RecordId>
<ur:CreateTime>2013-05-09T09:06:52Z</ur:CreateTime>
<ur:Site>"ACME-University"</ur:Site>
<ur:Infrastructure>"OSG"</ur:Infrastructure>
</ur:RecordIdentityBlock>
<ur:SubjectIdentityBlock>
<ur:LocalUserId>"johndoe"</ur:LocalUserId>
<ur:LocalGroupId>"projectA"</ur:LocalGroupId>
<ur:GlobalUserId>"/O=Grid/OU=example.org/CN=John Doe"</ur:GlobalUserId>
<ur:GlobalGroupId>"binarydataproject.example.org"</ur:GlobalGroupId>
<ur:GlobalGroupAttribute ur:type="subgroup">ukusers</ur:GlobalGroupAttribute>
</ur:SubjectIdentityBlock>
<ur:ComputeUsageBlock>
<ur:CpuDuration>PT3600S</ur:CpuDuration>
<ur:WallDuration>PT3600S</ur:WallDuration>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
<ur:ExecutionHost>
<ur:Hostname>"compute-0-1.abel.uio.no"</ur:Hostname>
<ur:ProcessId>1042</ur:ProcessId>
<ur:Benchmark ur:type="si2k">3.14</ur:Benchmark>
<ur:Benchmark ur:type="hepspec">42</ur:Benchmark>
</ur:ExecutionHost>
<ur:HostType>"org.nordugrid.arex"</ur:HostType>
<ur:Processors>1</ur:Processors>
<ur:NodeCount>1</ur:NodeCount>
ur-wg@ogf.org 41
GFD-R-P.204 January 2013
<ur:ExitStatus>0</ur:ExitStatus>
<ur:Charge>1.75</ur:Charge>
</ur:ComputeUsageBlock>
<ur:JobUsageBlock>
<ur:GlobalJobId>"host.example.org/ab1234/2013-05-09T09:06:52Z"</ur:GlobalJobId>
<ur:LocalJobId>"ab1234"</ur:LocalJobId>
<ur:JobName>"HiggsGammaGamma42"</ur:JobName>
<ur:MachineName>"ce.example.org"</ur:MachineName>
<ur:SubmitHost>
"nordugrid-cluster-name=ce.example.org,Mds-Vo-name=local,o=grid"
</ur:SubmitHost>
<ur:SubmitType ur:description="ARC CE">"grid"</ur:SubmitType>
<ur:Queue ur:description="execution">"Bigmem"</ur:Queue>
<ur:TimeInstant ur:type="Ctime">2013-05-31T10:30:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Qtime">2013-05-31T10:31:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Etime">2013-05-31T10:59:42</ur:TimeInstant>
<ur:ServiceLevel>"Bigmem"</ur:ServiceLevel>
<ur:Status>"aborted"</ur:Status>
</ur:JobUsageBlock>
<ur:MemoryUsageBlock>
<ur:MemoryClass>"RAM"</ur:MemoryClass>
<ur:MemoryResourceCapacityUsed>14728</ur:MemoryResourceCapacityUsed>
<ur:MemoryResourceCapacityAllocated>56437</ur:MemoryResourceCapacityAllocated>
<ur:MemoryResourceCapacityRequested>42000</ur:MemoryResourceCapacityRequested>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
<ur:ExecutionHost>"compute-0-1.abel.uio.no"</ur:ExecutionHost>
<ur:HostType>"org.nordugrid.arex"</ur:HostType>
<ur:Charge>0.0735</ur:Charge>
</ur:MemoryUsageBlock>
<ur:StorageUsageBlock>
<ur:StorageShare>pool-003</ur:StorageShare>
<ur:StorageMedia>disk</ur:StorageMedia>
<ur:StorageClass>replicated</ur:StorageClass>
<ur:DirectoryPath>/projectA</ur:DirectoryPath>
<ur:FileCount>42</ur:FileCount>
<ur:StorageResourceCapacityUsed>14728</ur:StorageResourceCapacityUsed>
<ur:StorageLogicalCapacityUsed>13617</ur:StorageLogicalCapacityUsed>
<ur:StorageResourceCapacityAllocated>14624</ur:StorageResourceCapacityAllocated>
<ur:StartTime>2013-05-07T09:31:40Z</ur:StartTime>
<ur:EndTime>2013-05-08T09:29:42Z</ur:EndTime>
<ur:Host>host.example.org</ur:Host>
ur-wg@ogf.org 42
GFD-R-P.204 January 2013
<ur:HostType>"org.dcache.storage"</ur:HostType>
<ur:Charge>0.01473</ur:Charge>
</ur:StorageUsageBlock>
<ur:CloudUsageBlock>
<ur:LocalVirtualMachineId>ab1234</ur:LocalVirtualMachineId>
<ur:GlobalVirtualMachineId>
host.example.org/ab1234/2013-05-09T09:06:52Z
</ur:GlobalVirtualMachineId>
<ur:Status>started</ur:Status>
<ur:SuspendDuration>PT3600S</ur:SuspendDuration>
<ur:ImageId>UbuntuImage2013</ur:ImageId>
<ur:MachineName>cloud.example.org</ur:MachineName>
<ur:SubmitHost>
cloud-name=cloud.example.org,Mds-Vo-name=local,o=cloud
</ur:SubmitHost>
<ur:TimeInstant ur:type="Ctime">2013-05-31T10:30:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Qtime">2013-05-31T10:31:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Etime">2013-05-31T10:59:42</ur:TimeInstant>
<ur:ServiceLevel>Premium</ur:ServiceLevel>
</ur:CloudUsageBlock>
<ur:NetworkUsageBlock>
<ur:NetworkClass ur:NetworkResourceBandwidth="100000000">"Ethernet"</ur:NetworkClass>
<ur:NetworkInboundUsed ur:SourceAddress=192.168.1.12>14728</ur:NetworkInboundUsed>
<ur:NetworkOutboundUsed ur:DestinationAddress=192.168.1.21>14728</ur:NetworkOutboundUse
<ur:Charge>0.0735</ur:Charge>
</ur:NetworkUsageBlock>
</ur:UsageRecord>
ur-wg@ogf.org 43
GFD-R-P.204 January 2013
</ur:RecordIdentityBlock>
<ur:SubjectIdentityBlock>
<ur:GlobalGroupId>"binarydataproject.example.org"</ur:GlobalGroupId>
<ur:GlobalGroupAttribute ur:type="subgroup">ukusers</ur:GlobalGroupAttribute>
</ur:SubjectIdentityBlock>
<ur:ComputeUsageBlock>
<ur:CpuDuration>PT3600S</ur:CpuDuration>
<ur:WallDuration>PT3600S</ur:WallDuration>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
<ur:ExecutionHost>
<ur:Hostname>"compute-0-1.abel.uio.no"</ur:Hostname>
<ur:ProcessId>1042</ur:ProcessId>
<ur:Benchmark ur:type="si2k">3.14</ur:Benchmark>
<ur:Benchmark ur:type="hepspec">42</ur:Benchmark>
</ur:ExecutionHost>
<ur:HostType>"org.nordugrid.arex"</ur:HostType>
<ur:ExitStatus>0</ur:ExitStatus>
</ur:ComputeUsageBlock>
<ur:JobUsageBlock>
<ur:GlobalJobId>"host.example.org/ab1234/2013-05-09T09:06:52Z"</ur:GlobalJobId>
<ur:MachineName>"ce.example.org"</ur:MachineName>
<ur:SubmitHost>
"nordugrid-cluster-name=ce.example.org,Mds-Vo-name=local,o=grid"
</ur:SubmitHost>
<ur:SubmitType ur:description="ARC CE">"grid"</ur:SubmitType>
<ur:Queue ur:description="execution">"Bigmem"</ur:Queue>
<ur:TimeInstant ur:type="Ctime">2013-05-31T10:30:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Qtime">2013-05-31T10:31:00</ur:TimeInstant>
<ur:TimeInstant ur:type="Etime">2013-05-31T10:59:42</ur:TimeInstant>
<ur:ServiceLevel>"Bigmem"</ur:ServiceLevel>
<ur:Status>"aborted"</ur:Status>
</ur:JobUsageBlock>
</ur:UsageRecord>
ur-wg@ogf.org 44
GFD-R-P.204 January 2013
xmlns:ur="http://schema.ogf.org/urf/2013/04/urf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schema.ogf.org/urf/2013/04/urf">
<ur:RecordIdentityBlock>
<ur:RecordId>"host.example.org/ur/87912469269276"</ur:RecordId>
<ur:CreateTime>2013-05-09T09:06:52Z</ur:CreateTime>
<ur:Site>"cesga"</ur:Site>
<ur:Infrastructure>"OpenNebula"</ur:Infrastructure>
</ur:RecordIdentityBlock>
<ur:SubjectIdentityBlock>
<ur:LocalUserId>"19"</ur:LocalUserId>
<ur:LocalGroupId>"101"</ur:LocalGroupId>
<ur:GlobalUserId>"/O=Grid/OU=example.org/CN=John Doe"</ur:GlobalUserId>
</ur:SubjectIdentityBlock>
<ur:ComputeUsageBlock>
<ur:CpuDuration>PT3600S</ur:CpuDuration>
<ur:WallDuration>PT3600S</ur:WallDuration>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
<ur:Processors>1</ur:Processors>
<ur:ExitStatus>0</ur:ExitStatus>
</ur:ComputeUsageBlock>
<ur:MemoryUsageBlock>
<ur:MemoryClass>"RAM"</ur:MemoryClass>
<ur:MemoryResourceCapacityUsed>1000</ur:MemoryResourceCapacityUsed>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
</ur:MemoryUsageBlock>
<ur:StorageUsageBlock>
<ur:StorageResourceCapacityUsed>13617</ur:StorageResourceCapacityUsed>
<ur:StartTime>2013-05-07T09:31:40Z</ur:StartTime>
<ur:EndTime>2013-05-08T09:29:42Z</ur:EndTime>
<ur:Host>host.example.org</ur:Host>
</ur:StorageUsageBlock>
<ur:CloudUsageBlock>
<ur:GlobalVirtualMachineId>
https://cloud.cesga.es:3202/compute/00f4b25e-e567-436a-8b74-eb3dc08d2da3 2012-12-28
</ur:GlobalVirtualMachineId>
<ur:Status>Completed</ur:Status>
<ur:SuspendDuration>PT0S</ur:SuspendDuration>
<ur:MachineName>cloud.example.org</ur:MachineName>
<ur:SubmitHost>
ur-wg@ogf.org 45
GFD-R-P.204 January 2013
cloud-name=cloud.example.org,Mds-Vo-name=local,o=cloud
</ur:SubmitHost>
</ur:CloudUsageBlock>
<ur:NetworkUsageBlock>
<ur:NetworkClass>"Ethernet"</ur:NetworkClass>
<ur:NetworkInboundUsed>1000</ur:NetworkInboundUsed>
<ur:NetworkOutboundUsed>420</ur:NetworkOutboundUsed>
</ur:NetworkUsageBlock>
</ur:UsageRecord>
ur-wg@ogf.org 46
GFD-R-P.204 January 2013
Minimal useful job record for a job run by the ukusers team of the binarydataproject.example.org
group.
Example
<?xml version="1.0" encoding="UTF-8"?>
<ur:UsageRecord xmlns="http://schema.ogf.org/urf/2013/04/urf"
xmlns:ur="http://schema.ogf.org/urf/2013/04/urf"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schema.ogf.org/urf/2013/04/urf">
<ur:RecordIdentityBlock>
<ur:RecordId>"host.example.org/ur/87912469269276"</ur:RecordId>
<ur:CreateTime>2013-05-09T09:06:52Z</ur:CreateTime>
</ur:RecordIdentityBlock>
<ur:SubjectIdentityBlock>
<ur:GlobalGroupId>"binarydataproject.example.org"</ur:GlobalGroupId>
<ur:GlobalGroupAttribute ur:type="subgroup">ukusers</ur:GlobalGroupAttribute>
</ur:SubjectIdentityBlock>
<ur:ComputeUsageBlock>
<ur:CpuDuration>PT3600S</ur:CpuDuration>
<ur:WallDuration>PT3600S</ur:WallDuration>
<ur:StartTime>2013-05-31T11:00:00</ur:StartTime>
<ur:EndTime>2013-05-31T12:00:00</ur:EndTime>
<ur:ExecutionHost>
<ur:Hostname>"compute-0-1.abel.uio.no"</ur:Hostname>
</ur:ExecutionHost>
<ur:ExitStatus>0</ur:ExitStatus>
</ur:ComputeUsageBlock>
<ur:JobUsageBlock>
<ur:GlobalJobId>"host.example.org/ab1234/2013-05-09T09:06:52Z"</ur:GlobalJobId>
<ur:MachineName>"ce.example.org"</ur:MachineName>
<ur:ServiceLevel>"Bigmem"</ur:ServiceLevel>
<ur:Status>"aborted"</ur:Status>
</ur:JobUsageBlock>
</ur:UsageRecord>
ur-wg@ogf.org 47
GFD-R-P.204 January 2013
ur-wg@ogf.org 48
GFD-R-P.204 January 2013
14 XSD Schema
Please note that while the elements listed in this document are not explicitly required to
appear within the usage record structure in the order in which they are defined, due to
limitations in the XSD format, to support unbounded occurences of some of the elements
the sequence indicator has been used. Technically, this imposes an order to the elements
when using XSD for validation.
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema attributeFormDefault="qualified"
elementFormDefault="qualified" targetNamespace="http://schema.ogf.org/urf/2013/04/urf"
xmlns:ur="http://schema.ogf.org/urf/2013/04/urf"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsd:annotation>
<xsd:documentation xml:lang="en">Usage Record 2.0 XML Schema definition
</xsd:documentation>
</xsd:annotation>
<xsd:complexType name="UsageRecordType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:RecordIdentityBlock" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:SubjectIdentityBlock" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:ComputeUsageBlock" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:JobUsageBlock" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:MemoryUsageBlock" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:StorageUsageBlock" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:CloudUsageBlock" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:NetworkUsageBlock" />
</xsd:sequence>
</xsd:complexType>
ur-wg@ogf.org 49
GFD-R-P.204 January 2013
</xsd:element>
<xsd:complexType name="InfrastructureType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="description" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
ur-wg@ogf.org 50
GFD-R-P.204 January 2013
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GlobalGroupAttributeType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
ur-wg@ogf.org 51
GFD-R-P.204 January 2013
<xsd:complexType name="ExecutionHostType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:Hostname" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:ProcessId" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:Benchmark" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="HostnameType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="primary" type="xsd:boolean" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="BenchmarkType">
<xsd:simpleContent>
<xsd:extension base="xsd:float">
<xsd:attribute name="type" type="xsd:string" use="required" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
ur-wg@ogf.org 52
GFD-R-P.204 January 2013
<xsd:complexType name="SubmitTypeType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="description" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="QueueType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="description" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="TimeInstantType">
<xsd:simpleContent>
<xsd:extension base="xsd:dateTime">
<xsd:attribute name="type" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
ur-wg@ogf.org 53
GFD-R-P.204 January 2013
ur-wg@ogf.org 54
GFD-R-P.204 January 2013
<xsd:complexType name="NetworkClassType">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="NetworkResourceBandwidth" type="xsd:positiveInteger" use="optional" />
ur-wg@ogf.org 55
GFD-R-P.204 January 2013
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="NetworkInboundUsedType">
<xsd:simpleContent>
<xsd:extension base="xsd:nonNegativeInteger">
<xsd:attribute name="SourceAddress" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="NetworkOutboundUsedType">
<xsd:simpleContent>
<xsd:extension base="xsd:nonNegativeInteger">
<xsd:attribute name="DestinationAddress" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>
ur-wg@ogf.org 56
GFD-R-P.204 January 2013
15 Security Considerations
Several security concerns may be raised w.r.t the generation, recording and transport of usage data.
Possible security issues include:
• Non-repudiation
• Integrity
• Secure Transport
However, recomendations for practices and policies which could address these concerns are consid-
ered to be beyone the scope of this document.
ur-wg@ogf.org 57
GFD-R-P.204 January 2013
16 Contributors
Andrea Cristofori
(Corresponding author)
IGI-BOLOGNA
Viale Berti Pichat 6/2, 40127 Bologna
Italy
Email: andrea.cristofori@cnaf.infn.it
John Gordon
STFC, RAL
Oxford
United Kingdom
Email: john.gordon@stfc.ac.uk
Mike Jones
University of Manchester
Manchester
United Kingdom
Email: mike.jones@manchester.ac.uk
Ralph Müller-Pfefferkorn
Technische Universität Dresden
01062 Dresden
Germany
Email: ralph.mueller-pfefferkorn@tu-dresden.de
ur-wg@ogf.org 58
GFD-R-P.204 January 2013
Alison Packer
STFC, RAL
Oxford
United Kingdom
Email: alison.packer@stfc.ac.uk
ur-wg@ogf.org 59
GFD-R-P.204 January 2013
17 Acknowledgments
This document is the work of the Usage Record Working Group of the OGF.
The group would like to thank the authors of other accounting and usage records (namely CAR,
StAR, and CUR) who contributed in the discussions as well as the people who commented in the
StAR public hearing.
Work on this specification was supported by the European project EMI.
ur-wg@ogf.org 60
GFD-R-P.204 January 2013
19 Disclaimer
This document and the information contained herein is provided on an “As Is” basis and the OGF
disclaims all warranties, express or implied, including but not limited to any warranty that the use
of the information herein will not infringe any rights or any implied warranties of merchantability
or fitness for a particular purpose.
ur-wg@ogf.org 61
GFD-R-P.204 January 2013
21 References
[1] RR Mach, R. Lepro-Metz, S. Jackson, and L. McGinnis. Usage record format recommendation
gfd-rp. 098. In Open Grid Forum Recommendation, 2007.
[2] A. Guarise. Definition of the compute accounting record (car), 2011. URL http://cdsweb.
cern.ch/record/1449764.
[4] A. Cristofori. Grid accounting for computing and storage resources towards standardization.
PhD thesis, Università degli Studi di Ferrara, 2011.
[5] Scott Bradner. Key words for use in RFCs to Indicate Requirement Levels. RFC 2119 (Best
Current Practice), March 1997. URL http://tools.ietf.org/html/rfc2119.
[6] M. Wolf and C. Wicksteed. Date and time formats. W3C NOTE NOTE-datetime-19980827,
August, 1998.
[7] P. Mockapetris. Rfc 1034: Domain names-concepts and facilities, 1987. URL: ftp://ftp. isi.
edu/in-notes/rfc1034. txt.
ur-wg@ogf.org 62