Skip to content

Commit

Permalink
admission: include work priority in trace and errors
Browse files Browse the repository at this point in the history
This patch now includes work priority in the `WorkQueue` traces and
error messages to better help track where work items originate from.

Informs cockroachdb#113990.

Release note: None
  • Loading branch information
aadityasondhi committed Dec 10, 2023
1 parent 0cad7d5 commit f456c22
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 7 deletions.
3 changes: 2 additions & 1 deletion pkg/util/admission/admissionpb/admission_stats.proto
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@ message AdmissionWorkQueueStats {
string queue_kind = 2;
// Set to true if deadline was exceeded.
bool deadline_exceeded = 3;

// String representation of work priority.
string work_priority = 4;
}
17 changes: 11 additions & 6 deletions pkg/util/admission/work_queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -814,11 +814,11 @@ func (q *WorkQueue) Admit(ctx context.Context, info WorkInfo) (enabled bool, err
q.metrics.incErrored(info.Priority)
q.metrics.recordFinishWait(info.Priority, waitDur)
deadline, _ := ctx.Deadline()
recordAdmissionWorkQueueStats(span, waitDur, q.queueKind, true)
log.Eventf(ctx, "deadline expired, waited in %s queue for %v", q.queueKind, waitDur)
recordAdmissionWorkQueueStats(span, waitDur, q.queueKind, info.Priority, true)
log.Eventf(ctx, "deadline expired, waited in %s queue with pri %s for %v", q.queueKind, admissionpb.WorkPriorityDict[info.Priority], waitDur)
return true,
errors.Newf("deadline expired while waiting in queue: %s, deadline: %v, start: %v, dur: %v",
q.queueKind, deadline, startTime, waitDur)
errors.Newf("deadline expired while waiting in queue: %s, pri: %s, deadline: %v, start: %v, dur: %v",
q.queueKind, admissionpb.WorkPriorityDict[info.Priority], deadline, startTime, waitDur)
case chainID, ok := <-work.ch:
if !ok {
panic(errors.AssertionFailedf("channel should not be closed"))
Expand All @@ -829,14 +829,18 @@ func (q *WorkQueue) Admit(ctx context.Context, info WorkInfo) (enabled bool, err
if work.heapIndex != -1 {
panic(errors.AssertionFailedf("grantee should be removed from heap"))
}
recordAdmissionWorkQueueStats(span, waitDur, q.queueKind, false)
recordAdmissionWorkQueueStats(span, waitDur, q.queueKind, info.Priority, false)
q.granter.continueGrantChain(chainID)
return true, nil
}
}

func recordAdmissionWorkQueueStats(
span *tracing.Span, waitDur time.Duration, queueKind QueueKind, deadlineExceeded bool,
span *tracing.Span,
waitDur time.Duration,
queueKind QueueKind,
workPriority admissionpb.WorkPriority,
deadlineExceeded bool,
) {
if span == nil {
return
Expand All @@ -845,6 +849,7 @@ func recordAdmissionWorkQueueStats(
WaitDurationNanos: waitDur,
QueueKind: string(queueKind),
DeadlineExceeded: deadlineExceeded,
WorkPriority: admissionpb.WorkPriorityDict[workPriority],
})
}

Expand Down

0 comments on commit f456c22

Please sign in to comment.