Skip to content

Commit

Permalink
Populate self-hosted usage fields (#7019)
Browse files Browse the repository at this point in the history
  • Loading branch information
bduffany authored Jul 17, 2024
1 parent 4d0d3ad commit 2f35de7
Showing 1 changed file with 22 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1029,7 +1029,6 @@ func (s *ExecutionServer) updateUsage(ctx context.Context, cmd *repb.Command, ex
}
return err
}
counts := &tables.UsageCounts{}
// TODO: Incorporate remote-header overrides here.
plat, err := platform.ParseProperties(&repb.ExecutionTask{Command: cmd})
if err != nil {
Expand All @@ -1040,24 +1039,11 @@ func (s *ExecutionServer) updateUsage(ctx context.Context, cmd *repb.Command, ex
if err != nil {
return status.InternalErrorf("failed to determine executor pool: %s", err)
}
// Only increment execution counts if using shared executors.
if pool.IsSelfHosted {
return nil
}

if plat.OS == platform.DarwinOperatingSystemName {
if dur > 0 {
counts.MacExecutionDurationUsec = dur.Microseconds()
}
} else if plat.OS == platform.LinuxOperatingSystemName {
if dur > 0 {
counts.LinuxExecutionDurationUsec = dur.Microseconds()
}
} else {
return status.InternalErrorf("Unsupported platform %s", plat.OS)
}
counts := &tables.UsageCounts{}
setExecutionDuration(counts, dur, pool, plat)
usg := executeResponse.GetResult().GetExecutionMetadata().GetUsageStats()
if usg.GetCpuNanos() > 0 {
if !pool.IsSelfHosted && usg.GetCpuNanos() > 0 {
counts.CPUNanos = usg.GetCpuNanos()
}
labels, err := usageutil.Labels(ctx)
Expand Down Expand Up @@ -1097,6 +1083,25 @@ func executionDuration(md *repb.ExecutedActionMetadata) (time.Duration, error) {
return dur, nil
}

func setExecutionDuration(counts *tables.UsageCounts, duration time.Duration, pool *interfaces.PoolInfo, props *platform.Properties) {
if duration < 0 {
return
}
if pool.IsSelfHosted {
if props.OS == platform.LinuxOperatingSystemName {
counts.SelfHostedLinuxExecutionDurationUsec += duration.Microseconds()
} else if props.OS == platform.DarwinOperatingSystemName {
counts.SelfHostedMacExecutionDurationUsec += duration.Microseconds()
}
} else {
if props.OS == platform.LinuxOperatingSystemName {
counts.LinuxExecutionDurationUsec += duration.Microseconds()
} else if props.OS == platform.DarwinOperatingSystemName {
counts.MacExecutionDurationUsec += duration.Microseconds()
}
}
}

func (s *ExecutionServer) Cancel(ctx context.Context, invocationID string) error {
ids, err := s.executionIDs(ctx, invocationID)
if err != nil {
Expand Down

0 comments on commit 2f35de7

Please sign in to comment.