The IRRL attempts to piggyback on the IngressAdmissionController's queue section by using a WaitingForAdmissionGuard with the opCtx's IngressAdmissionContext:
https://github.com/10gen/mongo/blob/b8fea93958a91d7f8c4966664f444335c35f9739/src/mongo/db/admission/ingress_request_rate_limiter.cpp#L247
This causes queueing time to show up in CurOp and therefore things like Slow Query logging, since it just looks at the admission context, but this does not actually increment any metrics that end up getting reported in the queues.ingress serverStatus section, which relies exclusively on the IngressAdmissionController's stat reporting.
To remedy this, we should probably separate IRRL queueing and IngressAdmissionController queueing entirely, potentially by adding a new section to queues or by recording the queueing time separately.
- is duplicated by
-
SERVER-132628 Add totalTimeQueuedMicros metric to RateLimiter stats
-
- Closed
-
- is related to
-
SERVER-131015 Incorporate entire queue registry into CurOp working time calculation
-
- Open
-
-
SERVER-132627 Refactor QueuesRegistry to not be tied to TicketHolder
-
- Backlog
-
- related to
-
SERVER-132858 AdditiveMetrics reports queuing metrics only for execution control
-
- In Code Review
-
-
SERVER-132975 Track totalTimeQueuedMicros on a single aggregate counter
-
- Closed
-