0% found this document useful (0 votes)
9 views62 pages

GFD 204

Open Grid Forum document 204

Uploaded by

Faust.RMP
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views62 pages

GFD 204

Open Grid Forum document 204

Uploaded by

Faust.RMP
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 62

GFD-R-P.204 A.

Cristofori (editor), IGI Bologna


UR-WG J. K. Nilsen (editor), Univ. of Oslo
ur-wg@ogf.org J. Gordon, STFC RAL London
M. Jones, Univ. of Manchester
J. A. Kennedy, RZG Munich
R. Müller-Pfefferkorn, TU Dresden
January 2013
Usage Record – Format Recommendation
Status of This Document
GFD-R-P.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.

1.1.2 What This Document Is Not

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.

1.2 Format of the Record Specification


UR-2.0 defines the building blocks necessary for the accounting of different resources. This is
achieved by combining the blocks in different ways. In this document all the fields and blocks
that are part of UR-2.0 will be described. Additionally, example records for accounting of
storage, grid, cloud are given. This record specification is aiming at being as general as
possible. Different communities should then create their own profiles where they specify the
combination of blocks and fields required for their implementation.

ur-wg@ogf.org 7
GFD-R-P.204 January 2013

2 Conventions Used in this Document


2.1 Notational Conventions
The key words “MUST” “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”,
“SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” are to be interpreted
as described in RFC 2119 [5], except that the words do not appear in uppercase.

2.2 Meta Properties


Meta properties are associated with individual base properties to provide additional infor-
mation and semantic meaning of the value for a base property. The meta properties outlined
below are commonly encountered and should be supported for the indicated base properties.

2.2.1 Description

The description provides a mechanism for additional, optional information to be attached


to a Usage Record base property. The value of this meta-property MAY provide clues to
the semantic context to use while interpreting or examining the value of the owning base
property.

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.

2.2.3 Time Stamps

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

2.4 Supported Data Types


1. String: Data of this type has no required restrictions on the length or available char-
acters.
2. Integer
3. Positive integer: Data of this type must have a value of zero or greater.
4. Non-zero integer: Data of this type must have a value of one or greater.
5. Float: Data of this type must be a decimal number.
6. Timestamp: Data of this type must comply with the UTC time zone format specified
in ISO 8601.
7. DomainName: Data of this type must comply with RFC 1034[7] format for fully qual-
ified domain names. The constraints are a maximum 255 characters long, containing
only alphabetic and numeric characters, the “-“, and the “.” characters.

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

The name of the ExecutionHost.


• Hostname MUST be a string.
• Hostname MUST be a child of ExecutionHost.
• Hostname MUST be present if ExecutionHost is present.
• The attribute primary MAY be present in this element.

ur-wg@ogf.org 15
GFD-R-P.204 January 2013

• The attribute primary MUST be a boolean.


Example
<ur:Hostname primary=false>"compute-0-1.abel.uio.no"</ur:Hostname>

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

This element is used to insert computing benchmarks associated to the host.


• Benchmark MUST a child of ExecutionHost.
• Benchmark MAY be present multiple times in ExecutionHost.
• Benchmark MUST be a float.
• The attribute type MUST be present in the element.
• The attribute type MUST be a string.
• This value should be defined in a community specific profile.
Example
<ur:Benchmark type="Si2k">3.14</ur: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

• HostType MUST be a string.


Example
<ur:HostType>"org.nordugrid.arex"</ur:HostType>

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

• StorageResourceCapacityUsed MAY also include resources that are no longer in use


but are unavailable for reuse (e.g., if a file is removed from tape, the tape may not
be immediately available for reuse), as documented in the appropriate service level
agreement or usage policy documents.
Example
<ur:StorageResourceCapacityUsed>14728</ur:StorageResourceCapacityUsed>

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:

Same as for StorageResourceCapacityUsed property (see chapter 8.6).

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:

Same as for StorageResourceCapacityUsed (see chapter 8.6).

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

• This value should be defined in a community specific profile.


Example
<ur:Status>"started"</ur:Status>

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

Element Attribute Short Description Field Type Requirement


RecordId Identity of the record String REQUIRED
CreateTime Time of creation of the record ISO8601 REQUIRED
Site The site where resource resides String OPTIONAL
Infrastructure The infrastructure where the resource was String OPTIONAL
used
description Additional information on the used infras- String RECOMMENDED
tructure if Infrastructure
exists

12.2 SubjectIdentityBlock

Element Attribute Short Description Field Type Requirement


LocalUserId Identity of the local user String OPTIONAL
LocalGroupId Identity of the local group String OPTIONAL
GlobalUserId Global identity of the user String OPTIONAL
GlobalGroupId Global identity of the group String REQUIRED if
GlobalGroup-
Attribute exists
GlobalGroupAttribute Global group attribute String OPTIONAL
type Type of attribute String REQUIRED if
GlobalGroup-
Attribute exists

12.3 ComputeUsageBlock

Element Attribute Short Description Field Type Requirement


CpuDuration CPU duration ISO OPTIONAL
8601:2004
WallDuration Wall duration ISO OPTIONAL
8601:2004
StartTime Start of consumption ISO REQUIRED
8601:2004
EndTime End of consumption ISO REQUIRED
8601:2004

ur-wg@ogf.org 37
GFD-R-P.204 January 2013

ExecutionHost Host where application is executed OPTIONAL


Hostname Name of the execution host String REQUIRED if
ExecutionHost is
present
ProcessId UNIX pid of the process Non-zero In- OPTIONAL
teger
Benchmark Benchmark associated with execution host String OPTIONAL
type Benchmark type String OPTIONAL
HostType Type of service String OPTIONAL
Processors Number of processors requested/used Non-zero In- OPTIONAL
teger
NodeCount Number of nodes requested/used Non-zero In- OPTIONAL
teger
ExitStatus Exit status of the application Integer REQUIRED
Charge The charge to the user for the resource used float OPTIONAL

12.4 JobUsageBlock

Element Attribute Short Description Field Type Requirement


GlobalJobId Global identity of the job String OPTIONAL
LocalJobId Local identity of the job String OPTIONAL
JobName Description of the job String OPTIONAL
MachineName Compute facility String RECOMMENDED
SubmitHost Host submitting the job String OPTIONAL
SubmitType How the job has been submitted String OPTIONAL
description Description of the middleware used String REQUIRED
Queue Queue name String OPTIONAL
description Description of the queue name String OPTIONAL
TimeInstant Time instant related to the user payload ISO RECOMMENDED
8601:2004
type Type of time instant String OPTIONAL
ServiceLevel Type of service level String OPTIONAL
Status Status of the job String REQUIRED

12.5 MemoryUsageBlock

Element Attribute Short Description Field Type Requirement


MemoryClass Class of memory String REQUIRED
MemoryResource- Bytes used Positive In- REQUIRED
CapacityUsed teger
MemoryResource- Logical bytes allocated Positive In- OPTIONAL
CapacityAllocated teger

ur-wg@ogf.org 38
GFD-R-P.204 January 2013

MemoryResource- Bytes requested Positive In- OPTIONAL


CapacityRequested teger
StartTime Start of consumption ISO REQUIRED
8601:2004
EndTime End of consumption ISO REQUIRED
8601:2004
ExecutionHost Host where application is executed OPTIONAL
Hostname Name of the execution host String REQUIRED if
ExecutionHost is
present
ProcessId UNIX pid of the process Non-zero In- OPTIONAL
teger
Benchmark Benchmark associated with execution host String OPTIONAL
type Benchmark type String OPTIONAL
HostType Type of service String OPTIONAL
Charge The charge to the user for the resource used float OPTIONAL

12.6 StorageUsageBlock

Element Attribute Short Description Field Type Requirement


StorageShare Part of the storage used String OPTIONAL
StorageMedia Details on the stored data String OPTIONAL
StorageClass Class of the stored data String OPTIONAL
DirectoryPath Directory path of the data accounted String OPTIONAL
FileCount Number of files accounted Non-zero In- OPTIONAL
teger
StorageResource- Bytes used Positive In- REQUIRED
CapacityUsed teger
StorageLogical- Logical bytes used Positive In- OPTIONAL
CapacityUsed teger
StorageResource- Bytes allocated Positive In- OPTIONAL
CapacityAllocated teger
StartTime Start of consumption ISO REQUIRED
8601:2004
EndTime End of consumption ISO REQUIRED
8601:2004
Host Host in which the storage is consumed String OPTIONAL
HostType Type of service String OPTIONAL
Charge The charge to the user for the resource used float OPTIONAL

12.7 CloudUsageBlock

Element Attribute Short Description Field Type Requirement

ur-wg@ogf.org 39
GFD-R-P.204 January 2013

LocalVirtualMachine- Local Id of the Virtual Machine String OPTIONAL


Id
GlobalVirtual- Global Id of the Virtual Machine String OPTIONAL
MachineId
Status Status of the Virtual Machine String REQUIRED
SuspendDuration Amount of time in suspension ISO OPTIONAL
8601:2004
ImageId Virtual Machine Image Id String OPTIONAL
TimeInstant Time instant related to the user payload ISO OPTIONAL
8601:2004
type Type of time instant String OPTIONAL
ServiceLevel Type of service level String OPTIONAL
SubmitHost Host submitting the request for the Virtual String OPTIONAL
Machine
MachineName Computer facility String RECOMMENDED

12.8 NetworkUsageBlock

Element Attribute Short Description Field Type Requirement


NetworkClass Class of the Network String REQUIRED
Network- Bandwidth of the Resource Non-zero In- REQUIRED
Resource- teger
Bandwidth
NetworkInboundUsed Inbound network traffic Positive In- REQUIRED
teger
Source- Source address of inbound network traffic String OPTIONAL
Address
NetworkOutbound- Outbound network traffic Positive In- REQUIRED
Used teger
Destination- Destination address of outbound network String OPTIONAL
Address traffic
Charge The charge to the user for the resource used float OPTIONAL

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>

13.2 Grid example


Example of a possible grid usage 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:Infrastructure>"EGI"</ur:Infrastructure>

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>

13.3 Cloud example


Example of a possible cloud usage record.
Example
<?xml version="1.0" encoding="UTF-8"?>
<ur:UsageRecord xmlns="http://schema.ogf.org/urf/2013/04/urf"

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>

13.4 Local example


Example of a possible usage record for a local user.
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:Infrastructure>"OSG"</ur:Infrastructure>
</ur:RecordIdentityBlock>
<ur:SubjectIdentityBlock>
<ur:LocalUserId>"johndoe"</ur:LocalUserId>
</ur:SubjectIdentityBlock>
<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>"compute-0-1.abel.uio.no"</ur:Host>
</ur:StorageUsageBlock>
</ur:UsageRecord>

ur-wg@ogf.org 46
GFD-R-P.204 January 2013

13.5 Minimal examples

13.5.1 Job record

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

13.5.2 Storage record

An example of a minimal storage record. There is no SubjectIdentity block, which should


be interpreted as the record accounts for all usage on the storage system.
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: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:UsageRecord>

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>

<xsd:element abstract="true" name="Usage" type="ur:UsageRecordType" />


<xsd:element name="UsageRecord" substitutionGroup="ur:Usage"
type="ur:UsageRecordType" />
<xsd:element name="UsageRecords">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="unbounded" minOccurs="0"
ref="ur:Usage" />
</xsd:sequence>
</xsd:complexType>

ur-wg@ogf.org 49
GFD-R-P.204 January 2013

</xsd:element>

<xsd:element name="RecordIdentityBlock" type="ur:RecordIdentityBlockType" />


<xsd:element name="SubjectIdentityBlock" type="ur:SubjectIdentityBlockType" />
<xsd:element name="ComputeUsageBlock" type="ur:ComputeUsageBlockType" />
<xsd:element name="JobUsageBlock" type="ur:JobUsageBlockType" />
<xsd:element name="MemoryUsageBlock" type="ur:MemoryUsageBlockType" />
<xsd:element name="StorageUsageBlock" type="ur:StorageUsageBlockType" />
<xsd:element name="CloudUsageBlock" type="ur:CloudUsageBlockType" />
<xsd:element name="NetworkUsageBlock" type="ur:NetworkUsageBlockType" />

<!-- RecordIdentityBlock definition -->


<xsd:complexType name="RecordIdentityBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:RecordId" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:CreateTime" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Site" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Infrastructure" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="RecordId" type="xsd:string" />


<xsd:element name="CreateTime" type="xsd:dateTime" />
<xsd:element name="Site" type="xsd:string" />
<xsd:element name="Infrastructure" type="ur:InfrastructureType" />

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

<!-- SubjectIdentityBlock definition -->


<xsd:complexType name="SubjectIdentityBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:LocalUserId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:LocalGroupId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:GlobalUserId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:GlobalGroupId" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:GlobalGroupAttribute" />

ur-wg@ogf.org 50
GFD-R-P.204 January 2013

</xsd:sequence>
</xsd:complexType>

<xsd:element name="LocalUserId" type="xsd:string" />


<xsd:element name="LocalGroupId" type="xsd:string" />
<xsd:element name="GlobalUserId" type="xsd:string" />
<xsd:element name="GlobalGroupId" type="xsd:string" />
<xsd:element name="GlobalGroupAttribute" type="ur:GlobalGroupAttributeType" />

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

<!-- ComputeUsageBlock definition -->


<xsd:complexType name="ComputeUsageBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:CpuDuration" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:WallDuration" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:StartTime" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:EndTime" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:ExecutionHost" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:HostType" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Processors" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:NodeCount" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:ExitStatus" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Charge" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="CpuDuration" type="xsd:duration" />


<xsd:element name="WallDuration" type="xsd:duration" />
<xsd:element name="StartTime" type="xsd:dateTime" />
<xsd:element name="EndTime" type="xsd:dateTime" />
<xsd:element name="ExecutionHost" type="ur:ExecutionHostType" />
<xsd:element name="HostType" type="xsd:string" />
<xsd:element name="Processors" type="xsd:positiveInteger" />
<xsd:element name="NodeCount" type="xsd:positiveInteger" />
<xsd:element name="ExitStatus" type="xsd:integer" />

ur-wg@ogf.org 51
GFD-R-P.204 January 2013

<xsd:element name="Charge" type="xsd:decimal" />

<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:element name="Hostname" type="ur:HostnameType" />


<xsd:element name="ProcessId" type="xsd:positiveInteger" />
<xsd:element name="Benchmark" type="ur:BenchmarkType" />

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

<!-- JobUsageBlock definition -->


<xsd:complexType name="JobUsageBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:GlobalJobId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:LocalJobId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:JobName" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:MachineName" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:SubmitHost" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:SubmitType" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Queue" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:TimeInstant" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:ServiceLevel" />

ur-wg@ogf.org 52
GFD-R-P.204 January 2013

<xsd:element maxOccurs="1" minOccurs="1" ref="ur:Status" />


</xsd:sequence>
</xsd:complexType>

<xsd:element name="GlobalJobId" type="xsd:string" />


<xsd:element name="LocalJobId" type="xsd:string" />
<xsd:element name="JobName" type="xsd:string" />
<xsd:element name="MachineName" type="xsd:string" />
<xsd:element name="SubmitHost" type="xsd:string" />
<xsd:element name="SubmitType" type="ur:SubmitTypeType" />
<xsd:element name="Queue" type="ur:QueueType" />
<xsd:element name="TimeInstant" type="ur:TimeInstantType" />
<xsd:element name="ServiceLevel" type="xsd:string" />
<xsd:element name="Status" type="xsd:string" />

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

<!-- MemoryUsageBlock definition -->


<xsd:complexType name="MemoryUsageBlockType">
<xsd:sequence>

ur-wg@ogf.org 53
GFD-R-P.204 January 2013

<xsd:element maxOccurs="1" minOccurs="1" ref="ur:MemoryClass" />


<xsd:element maxOccurs="1" minOccurs="1" ref="ur:MemoryResourceCapacityUsed" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:MemoryResourceCapacityAllocated" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:MemoryResourceCapacityRequested" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:StartTime" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:EndTime" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:ExecutionHost" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:HostType" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Charge" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="MemoryClass" type="xsd:string" />


<xsd:element name="MemoryResourceCapacityUsed" type="xsd:nonNegativeInteger" />
<xsd:element name="MemoryResourceCapacityAllocated" type="xsd:nonNegativeInteger" />
<xsd:element name="MemoryResourceCapacityRequested" type="xsd:nonNegativeInteger" />

<!-- StorageUsageBlock definition -->


<xsd:complexType name="StorageUsageBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:StorageShare" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:StorageMedia" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:StorageClass" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:DirectoryPath" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:FileCount" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:StorageResourceCapacityUsed" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:StorageLogicalCapacityUsed" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:StorageResourceCapacityAllocated" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:StartTime" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:EndTime" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Host" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:HostType" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Charge" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="StorageShare" type="xsd:string" />


<xsd:element name="StorageMedia" type="xsd:string" />
<xsd:element name="StorageClass" type="xsd:string" />
<xsd:element name="DirectoryPath" type="xsd:string" />
<xsd:element name="FileCount" type="xsd:positiveInteger" />
<xsd:element name="StorageResourceCapacityUsed" type="xsd:nonNegativeInteger" />

ur-wg@ogf.org 54
GFD-R-P.204 January 2013

<xsd:element name="StorageLogicalCapacityUsed" type="xsd:nonNegativeInteger" />


<xsd:element name="StorageResourceCapacityAllocated" type="xsd:nonNegativeInteger" />
<xsd:element name="Host" type="xsd:string" />

<!-- CloudUsageBlock definition -->


<xsd:complexType name="CloudUsageBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:LocalVirtualMachineId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:GlobalVirtualMachineId" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:Status" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:SuspendDuration" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:ImageId" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:MachineName" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:SubmitHost" />
<xsd:element maxOccurs="unbounded" minOccurs="0" ref="ur:TimeInstant" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:ServiceLevel" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="LocalVirtualMachineId" type="xsd:string" />


<xsd:element name="GlobalVirtualMachineId" type="xsd:string" />
<xsd:element name="SuspendDuration" type="xsd:duration" />
<xsd:element name="ImageId" type="xsd:string" />

<!-- NetworkUsageBlock definition -->


<xsd:complexType name="NetworkUsageBlockType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:NetworkClass" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:NetworkInboundUsed" />
<xsd:element maxOccurs="1" minOccurs="1" ref="ur:NetworkOutboundUsed" />
<xsd:element maxOccurs="1" minOccurs="0" ref="ur:Charge" />
</xsd:sequence>
</xsd:complexType>

<xsd:element name="NetworkClass" type="ur:NetworkClassType" />


<xsd:element name="NetworkInboundUsed" type="ur:NetworkInboundUsedType" />
<xsd:element name="NetworkOutboundUsed" type="ur:NetworkOutboundUsedType" />

<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

• Confidentiality of certain elements

• 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

John Alan Kennedy


RZG (MPG/IPP)
D-85748
Garching
Germany
john.kennedy@rzg.mpg.de

Ralph Müller-Pfefferkorn
Technische Universität Dresden
01062 Dresden
Germany
Email: ralph.mueller-pfefferkorn@tu-dresden.de

Jon Kerr Nilsen


(Corresponding author)
University of Oslo
P.O box 1048, Blindern, 0316 Oslo
Norway
Email: j.k.nilsen@fys.uio.no

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

18 Intellectual Property Statement


The OGF takes no position regarding the validity or scope of any intellectual property or other
rights that might be claimed to pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights might or might not be available;
neither does it represent that it has made any effort to identify any such rights. Copies of claims
of rights made available for publication and any assurances of licenses to be made available, or the
result of an attempt made to obtain a general license or permission for the use of such proprietary
rights by implementers or users of this specification can be obtained from the OGF Secretariat.
The OGF invites any interested party to bring to its attention any copyrights, patents or patent
applications, or other proprietary rights which may cover technology that may be required to
practice this recommendation. Please address the information to the OGF Executive Director.

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.

20 Full Copyright Notice


Copyright c Open Grid Forum (2006-2013). Some Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works
that comment on or otherwise explain it or assist in its implementation may be prepared, copied,
published and distributed, in whole or in part, without restriction of any kind, provided that the
above copyright notice and this paragraph are included as references to the derived portions on
all such copies and derivative works. The published OGF document from which such works are
derived, however, may not be modified in any way, such as by removing the copyright notice or
references to the OGF or other organizations, except as needed for the purpose of developing new
or updated OGF documents in conformance with the procedures defined in the OGF Document
Process, or as required to translate it into languages other than English. OGF, with the approval
of its board, may remove this restriction for inclusion of OGF document content for the purpose of
producing standards in cooperation with other international standards bodies.
The limited permissions granted above are perpetual and will not be revoked by the OGF or its
successors or assignees.

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.

[3] JK Nilsen, P. Millar, R. Müller-Pfefferkorn, Z. Molnar, and R. Zappi. Emi star–definition of a


storage accounting record. 2011.

[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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy