-
Type:
New Feature
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Optimization
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Currently we measure planning and execution time per query shape in the metrics:
metrics.totalExecMicros.[min|max|sum|sumOfSquares] metrics.queryPlanner.planningTimeMicros.[min|max|sum|sumOfSquares]
Introduce additional metrics for different plan selection strategies.
This can be similar to the queryLatencies metrics in serverStatus(): multiPlanner, costBased, singlePlan, cachedPlan, express. For each planning strategy add its count and exec and planning time aggregated statistics. For instance:
metrics.queryPlanner.costBased.count
metrics.queryPlanner.costBased.planningTimeMicros.[min|max|sum|sumOfSquares]
metrics.costBased.totalExecMicros.[min|max|sum|sumOfSquares]
Adding histograms instead of aggregated statistics is expected to be too high overhead.
If we need to reduce the number of new metrics, as a minimum we should introduce the metrics for the costBased plan ranker.