diff options
author | Daniel Morilha <daniel.morilha@mongodb.com> | 2022-06-30 13:16:45 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-06-30 14:11:31 +0000 |
commit | fae8410364c1f02ee62e77076ef60b8ee418368f (patch) | |
tree | 9909ee46de6ef7822236a468bfff95a6e61385dd /src/mongo/db/stats | |
parent | 50a8545e444e8bfc7e3892a1319515302b568739 (diff) | |
download | mongo-fae8410364c1f02ee62e77076ef60b8ee418368f.tar.gz |
SERVER-65987 ServerStatusMetric API refresh
Diffstat (limited to 'src/mongo/db/stats')
-rw-r--r-- | src/mongo/db/stats/api_version_metrics.cpp | 9 | ||||
-rw-r--r-- | src/mongo/db/stats/api_version_metrics.h | 2 | ||||
-rw-r--r-- | src/mongo/db/stats/counters.h | 54 |
3 files changed, 21 insertions, 44 deletions
diff --git a/src/mongo/db/stats/api_version_metrics.cpp b/src/mongo/db/stats/api_version_metrics.cpp index 959e5b9e3f6..bbcd3f24f37 100644 --- a/src/mongo/db/stats/api_version_metrics.cpp +++ b/src/mongo/db/stats/api_version_metrics.cpp @@ -27,10 +27,8 @@ * it in the license file. */ -#include "mongo/platform/basic.h" - -#include "mongo/db/commands/server_status.h" #include "mongo/db/stats/api_version_metrics.h" +#include "mongo/db/commands/server_status.h" #include "mongo/util/duration.h" namespace mongo { @@ -122,6 +120,9 @@ public: .appendAPIVersionMetricsInfo(&apiVersionBob); apiVersionBob.done(); } -} apiVersionMetricsSSM; +}; + +auto& apiVersionMetricsSSM = + addMetricToTree(std::make_unique<APIVersionMetrics::APIVersionMetricsSSM>()); } // namespace mongo diff --git a/src/mongo/db/stats/api_version_metrics.h b/src/mongo/db/stats/api_version_metrics.h index 6a57e0953fa..edc3d95f9e7 100644 --- a/src/mongo/db/stats/api_version_metrics.h +++ b/src/mongo/db/stats/api_version_metrics.h @@ -58,9 +58,9 @@ public: APIVersionMetricsMap getAPIVersionMetrics_forTest(); -private: class APIVersionMetricsSSM; +private: void _removeStaleTimestamps(WithLock lk, Date_t now); mutable Mutex _mutex = MONGO_MAKE_LATCH("APIVersionMetrics::_mutex"); diff --git a/src/mongo/db/stats/counters.h b/src/mongo/db/stats/counters.h index cbf429127f6..815a6856772 100644 --- a/src/mongo/db/stats/counters.h +++ b/src/mongo/db/stats/counters.h @@ -302,10 +302,8 @@ class AggStageCounters { public: // Container for a stage count metric along with its corresponding counter. struct StageCounter { - StageCounter(StringData name) : metric("aggStageCounters." + name, &counter) {} - - Counter64 counter; - ServerStatusMetricField<Counter64> metric; + StageCounter(StringData name) : counter("aggStageCounters." + name) {} + CounterMetric counter; }; // Map of aggregation stages to the number of occurrences. @@ -316,10 +314,6 @@ extern AggStageCounters aggStageCounters; class DotsAndDollarsFieldsCounters { public: - DotsAndDollarsFieldsCounters() - : insertMetric("dotsAndDollarsFields.inserts", &inserts), - updateMetric("dotsAndDollarsFields.updates", &updates) {} - void incrementForUpsert(bool didInsert) { if (didInsert) { inserts.increment(); @@ -328,28 +322,15 @@ public: } } - Counter64 inserts; - Counter64 updates; - ServerStatusMetricField<Counter64> insertMetric; - ServerStatusMetricField<Counter64> updateMetric; + CounterMetric inserts{"dotsAndDollarsFields.inserts"}; + CounterMetric updates{"dotsAndDollarsFields.updates"}; }; extern DotsAndDollarsFieldsCounters dotsAndDollarsFieldsCounters; class QueryEngineCounters { public: - QueryEngineCounters() - : sbeFindQueryMetric("query.queryExecutionEngine.find.sbe", &sbeFindQueryCounter), - classicFindQueryMetric("query.queryExecutionEngine.find.classic", - &classicFindQueryCounter), - sbeOnlyAggregationMetric("query.queryExecutionEngine.aggregate.sbeOnly", - &sbeOnlyAggregationCounter), - classicOnlyAggregationMetric("query.queryExecutionEngine.aggregate.classicOnly", - &classicOnlyAggregationCounter), - sbeHybridAggregationMetric("query.queryExecutionEngine.aggregate.sbeHybrid", - &sbeHybridAggregationCounter), - classicHybridAggregationMetric("query.queryExecutionEngine.aggregate.classicHybrid", - &classicHybridAggregationCounter) {} + QueryEngineCounters() = default; void incrementQueryEngineCounters(CurOp* curop) { auto& debug = curop->debug(); @@ -381,21 +362,17 @@ public: // Query counters that record whether a find query was fully or partially executed in SBE, or // fully executed using the classic engine. One or the other will always be incremented during a // query. - Counter64 sbeFindQueryCounter; - Counter64 classicFindQueryCounter; - ServerStatusMetricField<Counter64> sbeFindQueryMetric; - ServerStatusMetricField<Counter64> classicFindQueryMetric; + CounterMetric sbeFindQueryCounter{"query.queryExecutionEngine.find.sbe"}; + CounterMetric classicFindQueryCounter{"query.queryExecutionEngine.find.classic"}; + // Aggregation query counters that record whether an aggregation was fully or partially executed // in DocumentSource (an sbe/classic hybrid plan), or fully pushed down to the sbe/classic // layer. Only incremented during aggregations. - Counter64 sbeOnlyAggregationCounter; - Counter64 classicOnlyAggregationCounter; - Counter64 sbeHybridAggregationCounter; - Counter64 classicHybridAggregationCounter; - ServerStatusMetricField<Counter64> sbeOnlyAggregationMetric; - ServerStatusMetricField<Counter64> classicOnlyAggregationMetric; - ServerStatusMetricField<Counter64> sbeHybridAggregationMetric; - ServerStatusMetricField<Counter64> classicHybridAggregationMetric; + CounterMetric sbeOnlyAggregationCounter{"query.queryExecutionEngine.aggregate.sbeOnly"}; + CounterMetric classicOnlyAggregationCounter{"query.queryExecutionEngine.aggregate.classicOnly"}; + CounterMetric sbeHybridAggregationCounter{"query.queryExecutionEngine.aggregate.sbeHybrid"}; + CounterMetric classicHybridAggregationCounter{ + "query.queryExecutionEngine.aggregate.classicHybrid"}; }; extern QueryEngineCounters queryEngineCounters; @@ -405,9 +382,8 @@ extern QueryEngineCounters queryEngineCounters; class OperatorCounters { private: struct ExprCounter { - ExprCounter(const std::string name) : metric(name, &counter) {} - Counter64 counter; - ServerStatusMetricField<Counter64> metric; + ExprCounter(const std::string& name) : counter(name) {} + CounterMetric counter; }; public: |