Grid Accounting

EGI Grid Accounting record and message formats

Individual Job Records and Messages

APEL-individual-job-message: v0.3

The header only appears once at the top of each message (that is once at the top of each file). It defines the type of record and the schema version.

Record Fields

The table shows the equivalent field in the CAR, under the container element urf:UsageRecord. If not specified, it refers to the text value of urf:Key, where the element is a direct child of urf:UsageRecord.

KeyValueDescriptionMandatoryCAR equivalent (if different)
SiteStringGOCDB sitenameYes
SubmitHostStringThe CE-ID (see example)Yes
MachineNameStringLRMS hostname
QueueStringBatch system queue
LocalJobIdStringBatch System Job IDYesurf:JobIdentity/urf:LocalJobId
LocalUserIdStringLocal usernameurf:UserIdentity/urf:LocalUserId
GlobalUserNameStringUser’s X509 DNurf:UserIdentity/urf:GlobalUserName
FQANStringUser’s VOMS attributesurf:UserIdentity/urf:GroupAttribute[@type=“FQAN”]
WallDurationintWallclock time for the job (seconds)YesCAR has ISO 8601 time duration
CpuDurationintCPU time for the job (seconds)YesCAR has ISO 8601 time duration
ProcessorsintNumber of processorsurf:Processors[@metric=“max”]
NodeCountintNumber of nodes
StartTimeintStart time of the job (epoch time)YesCAR has ISO 8601 datetime
EndTimeintStop time of the job (epoch time)YesCAR has ISO 8601 datetime
InfrastructureDescriptionString<accounting client>-<CE type>-<batch system type> eg. “APEL-CREAM-PBS”
InfrastructureTypeStringgrid OR local
MemoryRealintMemory consumed by job (kbytes)urf:Memory[@metric=“max” and @type=“Physical” and @storageUnit=“KB”]
MemoryVirtualintVirtual memory consumed by job (kbytes)urf:Memory[@metric=“max” and @type=“Shared” and @storageUnit=“KB”]
ServiceLevelTypeStringSi2k OR HEPSPECYesurf:ServiceLevel[@type]
ServiceLeveldoubleValue of either HepSpec06 or SpecInt2000Yesurf:ServiceLevel

Message

End of record

%%

Example Message

APEL-individual-job-message: v0.2
Site: ExampleSite
SubmitHost: host.domain:port/queue
LocalJobId: 11111111
LocalUserId: User1
GlobalUserName: /C=whatever/D=someDN
FQAN: /voname/Role=NULL/Capability=NULL
WallDuration: 234256
CpuDuration: 2345
Processors: 2
NodeCount: 2
StartTime: 1234567890
EndTime: 1234567899
MemoryReal: 1000
MemoryVirtual: 2000
ServiceLevelType: Si2k
ServiceLevel: 1000
%%
...another job record...
%%
...
%%

Notes

If GlobalUserName or UserFQAN is not published, the value for these fields on the server will be set to ‘None’.

Jobs are assumed to be grid jobs. To specify local jobs, use:

  • InfrastructureType: local
  • SubmitHostType: LRMS
  • SubmitHost: LRMS-hostname

The Group value specified for local jobs must be different to equivalent grid jobs, or you will not be able to differentiate them in the accounting portal. Suggestion:

  • Group: ExampleVO - grid job
  • Group: local-ExampleVO - local job

Changes since version 0.2

  • InfrastructureType field (optional)
  • InfrastructureDescription field (optional)
  • SubmitHostType field (optional)

Changes from version 0.1 to version 0.2

  • LocalJobID has changed to LocalJobId
  • LocalUserID has changed to LocalUserId
  • UserFQAN has changed to FQAN
  • ScalingFactorUnit has changed to ServiceLevelType
  • The possible values of ScalingFactorType have changed from [“SpecInt2000”, “HepSpec06”, “custom”] to [“Si2k”], [“HEPSPEC”]
  • ScalingFactor has changed to ServiceLevel

Summary Job Records and Messages

Header

APEL-summary-job-message: v0.3

The header only appears once at the top of each message. It defines the type of record and the schema version.

Record Fields

The table shows the equivalent field in the AUR, under the container element aur:SummaryRecord. If not specified, it refers to the text value of urf:Key, where the element is a direct child of aur:SummaryRecord.

KeyValueDescriptionMandatoryAUR equivalent
SiteStringGOCDB sitenameYes
MonthintMonth of summary (see notes)Yes
YearintYear of summary (see notes)Yes
GlobalUserNameStringUser’s X509 DNaur:UserIdentity/urf:GlobalUserName
VOStringUser’s VOaur:UserIdentity/urf:Group
VOGroupStringUser’s VOMS groupaur:UserIdentity/urf:GroupAttribute[@type=“vo-group”]
VORoleStringUser’s VOMS roleaur:UserIdentity/urf:GroupAttribute[@type=“vo-role”]
SubmitHostStringThe CE-ID or LRMS hostname
InfrastructureStringgrid OR local
ProcessorsintNumber of processors
NodeCountintNumber of nodes
EarliestEndTimeintEnd time of the first job in the month (epoch time)AUR has dates in ISO 8601 format
LatestEndTimeintEnd time of the last job in the month (epoch time)AUR has dates in ISO 8601 format
WallDurationintSum of wall clock times for all jobs in the month (in seconds)YesAUR has durations in ISO 8601 format
CpuDurationintSum of CPU time for all jobs in the month (in seconds)YesAUR has durations in ISO 8601 format
NormalisedWallDurationintSum of normalised wall clock time for all jobs (in seconds; normalised by HEPSPEC06)YesAUR has durations in ISO 8601 format
NormalisedCpuDurationintSum of normalised CPU times for all jobs (in seconds; normalised by HEPSPEC06)YesAUR has durations in ISO 8601 format
NumberOfJobsintTotal number of jobsYes

Message

End of record

%%

Example Message

APEL-summary-job-message: v0.3
Site: ExampleSite
Month: 3
Year: 2010
GlobalUserName: /C=whatever/D=someDN
VO: ExampleVO
VOGroup: /ExampleVO
VORole: Role=production
SubmitHost: host.domain:port/queue
Infrastructure: grid
Processors: 1
NodeCount: 1
EarliestEndTime: 1267527463
LatestEndTime: 1269773863
WallDuration: 23425
CpuDuration: 2345
NormalisedWallDuration: 244435
NormalisedCpuDuration: 2500
NumberOfJobs: 100
%%
...another summary job record...
%%
...
%%

Notes

If GlobalUserName, VO, Group or Role are not published, the value for these fields on the server will be set to ‘None’.

The job records are included in months according to the month and year of their EndTime. The month and year should be in UTC. Only completed jobs are accounted for by APEL.

All durations are in hours. Normalised durations should be multiplied by HEPSPEC06. All figures should be rounded to the nearest integer.

Summary Sync Records and Messages

The Summary Sync records are used for the creation of the “APEL Pub/Sync” tests. It is a mechanism for the central APEL server to know the number of records that each site is storing locally. It is in general only used by sites which publish via the standard APEL client.

Header

APEL-sync-message: v0.1

Record Fields

KeyValueDescriptionMandatory
SiteStringGOCDB sitenameYes
SubmitHostStringCE IDYes
NumberOfJobsintTotal number of jobs for that monthYes
MonthintMonthYes
YearintYearYes

Message

End of record

%%

Example Message

APEL-sync-message: v0.1
Site: ExampleSite
SubmitHost: host.domain:port/queue
NumberOfJobs: 3479
Month: 1
Year: 2010
%%
...another sync record...
%%
...
%%