diff options
Diffstat (limited to 'src/mongo/db/stats/api_version_metrics.h')
-rw-r--r-- | src/mongo/db/stats/api_version_metrics.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/mongo/db/stats/api_version_metrics.h b/src/mongo/db/stats/api_version_metrics.h index 12288ecdf08..6d2b7eb6ce4 100644 --- a/src/mongo/db/stats/api_version_metrics.h +++ b/src/mongo/db/stats/api_version_metrics.h @@ -44,6 +44,14 @@ namespace mongo { */ class APIVersionMetrics { public: + // To ensure that the BSONObject doesn't exceed the size limit, the 'appName' field has a limit + // of 128 bytes, which results in an output of approximately 128KB for app names. + static constexpr int KMaxNumOfOutputAppNames = 1000; + + // To prevent unbounded memory usage, we limit the size of the saved app name to approximately + // 384KB, as it is stored for 24 hours. + static constexpr int KMaxNumOfSavedAppNames = KMaxNumOfOutputAppNames * 3; + using APIVersionMetricsMap = stdx::unordered_map<std::string, stdx::unordered_map<std::string, Date_t>>; @@ -58,11 +66,15 @@ public: APIVersionMetricsMap getAPIVersionMetrics_forTest(); + void appendAPIVersionMetricsInfo_forTest(BSONObjBuilder* b); + class APIVersionMetricsSSM; private: void _removeStaleTimestamps(WithLock lk, Date_t now); + void _appendAPIVersionData(BSONObjBuilder* b); + mutable Mutex _mutex = MONGO_MAKE_LATCH("APIVersionMetrics::_mutex"); // Map of maps for API version metrics. For every application, for each API version, we store |