diff options
Diffstat (limited to 'src/mongo/s/query/cluster_cursor_manager.h')
| -rw-r--r-- | src/mongo/s/query/cluster_cursor_manager.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/s/query/cluster_cursor_manager.h b/src/mongo/s/query/cluster_cursor_manager.h index be10b0d60bd..73d07d91476 100644 --- a/src/mongo/s/query/cluster_cursor_manager.h +++ b/src/mongo/s/query/cluster_cursor_manager.h @@ -599,4 +599,19 @@ private: size_t _cursorsTimedOut = 0; }; +/** + * Record metrics for the current operation on opDebug and aggregates those metrics for queryStats + * use. If a cursor is provided (via ClusterClientCursorGuard or + * ClusterCursorManager::PinnedCursor), metrics are aggregated on the cursor; otherwise, metrics are + * written directly to the queryStats store. + * NOTE: Metrics are taken from opDebug.additiveMetrics, so CurOp::setEndOfOpMetrics must be called + * *prior* to calling these. + * + * Currently, queryStats is only collected for find and aggregate requests (and their subsequent + * getMore requests), so these should only be called from those request paths. + */ +void collectQueryStatsMongos(OperationContext* opCtx, std::unique_ptr<query_stats::Key> key); +void collectQueryStatsMongos(OperationContext* opCtx, ClusterClientCursorGuard& cursor); +void collectQueryStatsMongos(OperationContext* opCtx, ClusterCursorManager::PinnedCursor& cursor); + } // namespace mongo |
