-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Execution
-
Repl 2023-08-07
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
API Version parsing and metrics take a non-trivial amount of time in command execution. We should investigate if we can improve that.
UPDATE: In offline discussions, we determined that the current structure of tracking API metrics is not worth the performance cost we incur for every write. Instead of what we do today (track recently used API version metrics per application name, which can explode in size if there are many connections), we should instead:
- Track # of connections with a default appName for each API version
- Track # of connections with a non-default appName for each API version
- Ensure the appName and API version is available in currentOp and/or serverStatus so that customers can view it
- Log the appName and API version upon connection establishment
This will reduce the amount of overhead for API metrics while still providing enough information for DBMs to manage API versioning for their own projects.
- is depended on by
-
SERVER-77087 Make the retention period of metrics.apiVersions configurable.
-
- Closed
-
-
SERVER-77088 Introduce a metric that lists the number of unique appNames
-
- Closed
-
-
SERVER-77103 Cache the APIVersionMetrics::update
-
- Closed
-