diff options
Diffstat (limited to 'src/mongo/db/curop.cpp')
-rw-r--r-- | src/mongo/db/curop.cpp | 44 |
1 files changed, 32 insertions, 12 deletions
diff --git a/src/mongo/db/curop.cpp b/src/mongo/db/curop.cpp index b9e7ce060fe..24442c70f6d 100644 --- a/src/mongo/db/curop.cpp +++ b/src/mongo/db/curop.cpp @@ -881,14 +881,21 @@ void OpDebug::report(OperationContext* opCtx, pAttrs->add("locks", locks.obj()); } - auto userCacheAcquisitionStats = curop.getReadOnlyUserCacheAcquisitionStats(); - if (userCacheAcquisitionStats->shouldReport()) { + auto userAcquisitionStats = curop.getReadOnlyUserAcquisitionStats(); + if (userAcquisitionStats->shouldUserCacheAcquisitionStatsReport()) { BSONObjBuilder userCacheAcquisitionStatsBuilder; - userCacheAcquisitionStats->report(&userCacheAcquisitionStatsBuilder, - opCtx->getServiceContext()->getTickSource()); + userAcquisitionStats->userCacheAcquisitionStatsReport( + &userCacheAcquisitionStatsBuilder, opCtx->getServiceContext()->getTickSource()); pAttrs->add("authorization", userCacheAcquisitionStatsBuilder.obj()); } + if (userAcquisitionStats->shouldLDAPOperationStatsReport()) { + BSONObjBuilder ldapOperationStatsBuilder; + userAcquisitionStats->ldapOperationStatsReport(&ldapOperationStatsBuilder, + opCtx->getServiceContext()->getTickSource()); + pAttrs->add("LDAPOperations", ldapOperationStatsBuilder.obj()); + } + BSONObj flowControlObj = makeFlowControlObject(flowControlStats); if (flowControlObj.nFields() > 0) { pAttrs->add("flowControl", flowControlObj); @@ -1018,11 +1025,17 @@ void OpDebug::append(OperationContext* opCtx, } { - auto userCacheAcquisitionStats = curop.getReadOnlyUserCacheAcquisitionStats(); - if (userCacheAcquisitionStats->shouldReport()) { + auto userAcquisitionStats = curop.getReadOnlyUserAcquisitionStats(); + if (userAcquisitionStats->shouldUserCacheAcquisitionStatsReport()) { BSONObjBuilder userCacheAcquisitionStatsBuilder(b.subobjStart("authorization")); - userCacheAcquisitionStats->report(&userCacheAcquisitionStatsBuilder, - opCtx->getServiceContext()->getTickSource()); + userAcquisitionStats->userCacheAcquisitionStatsReport( + &userCacheAcquisitionStatsBuilder, opCtx->getServiceContext()->getTickSource()); + } + + if (userAcquisitionStats->shouldLDAPOperationStatsReport()) { + BSONObjBuilder ldapOperationStatsBuilder; + userAcquisitionStats->ldapOperationStatsReport( + &ldapOperationStatsBuilder, opCtx->getServiceContext()->getTickSource()); } } @@ -1285,11 +1298,18 @@ std::function<BSONObj(ProfileFilter::Args)> OpDebug::appendStaged(StringSet requ }); addIfNeeded("authorization", [](auto field, auto args, auto& b) { - auto userCacheAcquisitionStats = args.curop.getReadOnlyUserCacheAcquisitionStats(); - if (userCacheAcquisitionStats->shouldReport()) { + auto userAcquisitionStats = args.curop.getReadOnlyUserAcquisitionStats(); + if (userAcquisitionStats->shouldUserCacheAcquisitionStatsReport()) { BSONObjBuilder userCacheAcquisitionStatsBuilder(b.subobjStart(field)); - userCacheAcquisitionStats->report(&userCacheAcquisitionStatsBuilder, - args.opCtx->getServiceContext()->getTickSource()); + userAcquisitionStats->userCacheAcquisitionStatsReport( + &userCacheAcquisitionStatsBuilder, + args.opCtx->getServiceContext()->getTickSource()); + } + + if (userAcquisitionStats->shouldLDAPOperationStatsReport()) { + BSONObjBuilder ldapOperationStatsBuilder(b.subobjStart(field)); + userAcquisitionStats->ldapOperationStatsReport( + &ldapOperationStatsBuilder, args.opCtx->getServiceContext()->getTickSource()); } }); |