summaryrefslogtreecommitdiff
path: root/src/mongo/db/stats
diff options
context:
space:
mode:
authorDaniel Morilha <daniel.morilha@mongodb.com>2022-06-30 13:16:45 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-06-30 14:11:31 +0000
commitfae8410364c1f02ee62e77076ef60b8ee418368f (patch)
tree9909ee46de6ef7822236a468bfff95a6e61385dd /src/mongo/db/stats
parent50a8545e444e8bfc7e3892a1319515302b568739 (diff)
downloadmongo-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.cpp9
-rw-r--r--src/mongo/db/stats/api_version_metrics.h2
-rw-r--r--src/mongo/db/stats/counters.h54
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: