summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildscripts/resmokeconfig/suites/concurrency_metrics.yml1
-rw-r--r--buildscripts/resmokeconfig/suites/concurrency_replication_metrics.yml1
-rw-r--r--etc/evergreen.yml42
-rw-r--r--jstests/noPassthrough/aggregate_operation_metrics.js7
-rw-r--r--jstests/noPassthrough/change_stream_operation_metrics.js7
-rw-r--r--jstests/noPassthrough/index_build_operation_metrics.js7
-rw-r--r--jstests/noPassthrough/initial_sync_operation_metrics.js1
-rw-r--r--jstests/noPassthrough/profile_operation_metrics.js2
-rw-r--r--jstests/noPassthrough/ttl_operation_metrics.js1
-rw-r--r--src/mongo/db/stats/operation_resource_consumption.idl17
-rw-r--r--src/mongo/db/stats/resource_consumption_metrics.cpp16
-rw-r--r--src/mongo/db/stats/resource_consumption_metrics.h7
-rw-r--r--src/mongo/db/stats/resource_consumption_metrics_test.cpp1
13 files changed, 26 insertions, 84 deletions
diff --git a/buildscripts/resmokeconfig/suites/concurrency_metrics.yml b/buildscripts/resmokeconfig/suites/concurrency_metrics.yml
index 1ad332c0300..df55258553d 100644
--- a/buildscripts/resmokeconfig/suites/concurrency_metrics.yml
+++ b/buildscripts/resmokeconfig/suites/concurrency_metrics.yml
@@ -24,5 +24,4 @@ executor:
mongod_options:
set_parameters:
enableTestCommands: 1
- measureOperationResourceConsumption: true
aggregateOperationResourceConsumptionMetrics: true
diff --git a/buildscripts/resmokeconfig/suites/concurrency_replication_metrics.yml b/buildscripts/resmokeconfig/suites/concurrency_replication_metrics.yml
index 83eb39a99e9..14faa80383c 100644
--- a/buildscripts/resmokeconfig/suites/concurrency_replication_metrics.yml
+++ b/buildscripts/resmokeconfig/suites/concurrency_replication_metrics.yml
@@ -38,6 +38,5 @@ executor:
mongod_options:
set_parameters:
enableTestCommands: 1
- measureOperationResourceConsumption: true
aggregateOperationResourceConsumptionMetrics: true
num_nodes: 3
diff --git a/etc/evergreen.yml b/etc/evergreen.yml
index f61cbc4d45f..0dc8f1ea989 100644
--- a/etc/evergreen.yml
+++ b/etc/evergreen.yml
@@ -6519,6 +6519,7 @@ tasks:
- <<: *task_template
name: concurrency_metrics
+ tags: ["concurrency"]
commands:
- func: "do setup"
- func: "run tests"
@@ -6528,6 +6529,7 @@ tasks:
- <<: *task_template
name: concurrency_replication_metrics
+ tags: ["concurrency", "repl"]
commands:
- func: "do setup"
- func: "run tests"
@@ -11042,46 +11044,6 @@ buildvariants:
distros:
- rhel62-medium
-- name: enterprise-rhel-62-64-bit-operation-resource-consumption-metrics
- display_name: "Enterprise RHEL 6.2 Shared Library (Operation Resource Consumption Metrics)"
- modules:
- - enterprise
- run_on:
- - rhel62-small
- batchtime: 10080 # 7 days
- expansions:
- test_flags: >-
- --mongodSetParameters="{measureOperationResourceConsumption: true}"
- compile_flags: >-
- -j$(grep -c ^processor /proc/cpuinfo)
- --ssl
- --variables-files=etc/scons/mongodbtoolchain_v3_gcc.vars
- MONGO_DISTMOD=rhel62
- --link-model=dynamic
- multiversion_platform: rhel62
- multiversion_edition: enterprise
- repo_edition: enterprise
- scons_cache_scope: shared
- build_mongoreplay: false
- large_distro_name: rhel62-medium
- tasks:
- - name: compile_all_run_unittests_TG
- distros:
- - rhel62-large
- - name: concurrency_metrics
- - name: concurrency_replication_metrics
- distros:
- - rhel62-large
- - name: jsCore
- - name: noPassthrough_gen
- - name: noPassthroughWithMongod_gen
- - name: .replica_sets .common
- - name: .concurrency .common !.large
- - name: .concurrency .common .large
- - name: sharding_jscore_passthrough
- distros:
- - rhel62-medium
-
- name: rhel-62-64-bit-nossl
display_name: "RHEL 6.2 Shared Library (No SSL)"
run_on:
diff --git a/jstests/noPassthrough/aggregate_operation_metrics.js b/jstests/noPassthrough/aggregate_operation_metrics.js
index 17ed80d1d23..a1b1ff7a2cc 100644
--- a/jstests/noPassthrough/aggregate_operation_metrics.js
+++ b/jstests/noPassthrough/aggregate_operation_metrics.js
@@ -10,12 +10,7 @@
var rst = new ReplSetTest({
nodes: 2,
- nodeOptions: {
- setParameter: {
- "measureOperationResourceConsumption": true,
- "aggregateOperationResourceConsumptionMetrics": true
- }
- }
+ nodeOptions: {setParameter: {"aggregateOperationResourceConsumptionMetrics": true}}
});
rst.startSet();
rst.initiate();
diff --git a/jstests/noPassthrough/change_stream_operation_metrics.js b/jstests/noPassthrough/change_stream_operation_metrics.js
index beeeffdbadd..4e48d6329a8 100644
--- a/jstests/noPassthrough/change_stream_operation_metrics.js
+++ b/jstests/noPassthrough/change_stream_operation_metrics.js
@@ -11,12 +11,7 @@
const rst = new ReplSetTest({
nodes: 2,
- nodeOptions: {
- setParameter: {
- "measureOperationResourceConsumption": true,
- "aggregateOperationResourceConsumptionMetrics": true
- }
- }
+ nodeOptions: {setParameter: {"aggregateOperationResourceConsumptionMetrics": true}}
});
rst.startSet();
rst.initiate();
diff --git a/jstests/noPassthrough/index_build_operation_metrics.js b/jstests/noPassthrough/index_build_operation_metrics.js
index c954ace91ee..e15e2f1bd45 100644
--- a/jstests/noPassthrough/index_build_operation_metrics.js
+++ b/jstests/noPassthrough/index_build_operation_metrics.js
@@ -12,12 +12,7 @@ load('jstests/noPassthrough/libs/index_build.js'); // For IndexBuildTest
var rst = new ReplSetTest({
nodes: 2,
- nodeOptions: {
- setParameter: {
- "measureOperationResourceConsumption": true,
- "aggregateOperationResourceConsumptionMetrics": true
- }
- }
+ nodeOptions: {setParameter: {"aggregateOperationResourceConsumptionMetrics": true}}
});
rst.startSet();
rst.initiate();
diff --git a/jstests/noPassthrough/initial_sync_operation_metrics.js b/jstests/noPassthrough/initial_sync_operation_metrics.js
index 6bfb0a52cda..2b674b64a70 100644
--- a/jstests/noPassthrough/initial_sync_operation_metrics.js
+++ b/jstests/noPassthrough/initial_sync_operation_metrics.js
@@ -49,7 +49,6 @@ const getDBMetrics = (adminDB) => {
};
const setParams = {
- "measureOperationResourceConsumption": true,
"aggregateOperationResourceConsumptionMetrics": true,
};
diff --git a/jstests/noPassthrough/profile_operation_metrics.js b/jstests/noPassthrough/profile_operation_metrics.js
index e37f5601ee0..35c1cb83372 100644
--- a/jstests/noPassthrough/profile_operation_metrics.js
+++ b/jstests/noPassthrough/profile_operation_metrics.js
@@ -1408,7 +1408,7 @@ const testOperation = (db, operation) => {
};
const setParams = {
- measureOperationResourceConsumption: true
+ profileOperationResourceConsumptionMetrics: true
};
const runTest = (db) => {
diff --git a/jstests/noPassthrough/ttl_operation_metrics.js b/jstests/noPassthrough/ttl_operation_metrics.js
index ab48db74237..42de17ff0ed 100644
--- a/jstests/noPassthrough/ttl_operation_metrics.js
+++ b/jstests/noPassthrough/ttl_operation_metrics.js
@@ -16,7 +16,6 @@ var rst = new ReplSetTest({
nodes: 2,
nodeOptions: {
setParameter: {
- "measureOperationResourceConsumption": true,
"aggregateOperationResourceConsumptionMetrics": true,
"ttlMonitorSleepSecs": 1,
}
diff --git a/src/mongo/db/stats/operation_resource_consumption.idl b/src/mongo/db/stats/operation_resource_consumption.idl
index e19746fde36..051b0fbcaed 100644
--- a/src/mongo/db/stats/operation_resource_consumption.idl
+++ b/src/mongo/db/stats/operation_resource_consumption.idl
@@ -29,22 +29,23 @@
global:
cpp_namespace: "mongo"
-feature_flags:
- measureOperationResourceConsumption:
- description: "When enabled, records and reports per-operation resource consumption"
- cpp_varname: gMeasureOperationResourceConsumption
- default: false
-
server_parameters:
aggregateOperationResourceConsumptionMetrics:
- description: "When true, globally aggregates per-operation resource consumption metrics.
- Requires measureOperationResourceConsumption to also be set"
+ description: "When true, globally aggregates per-operation resource consumption metrics."
set_at:
- startup
cpp_varname: gAggregateOperationResourceConsumptionMetrics
cpp_vartype: bool
default: false
+ profileOperationResourceConsumptionMetrics:
+ description: "When true, records and profiles per-operation resource consumption metrics"
+ set_at:
+ - startup
+ cpp_varname: gProfileOperationResourceConsumptionMetrics
+ cpp_vartype: bool
+ default: false
+
documentUnitSizeBytes:
description: "The size of a document unit in bytes for resource consumption metrics collection"
set_at:
diff --git a/src/mongo/db/stats/resource_consumption_metrics.cpp b/src/mongo/db/stats/resource_consumption_metrics.cpp
index 88d4d4cfeaf..49c879cb272 100644
--- a/src/mongo/db/stats/resource_consumption_metrics.cpp
+++ b/src/mongo/db/stats/resource_consumption_metrics.cpp
@@ -94,21 +94,15 @@ public:
} // namespace
bool ResourceConsumption::isMetricsCollectionEnabled() {
- return gMeasureOperationResourceConsumption.isEnabledAndIgnoreFCV();
+ return isMetricsProfilingEnabled() || isMetricsAggregationEnabled();
}
-bool ResourceConsumption::isMetricsAggregationEnabled() {
- return gAggregateOperationResourceConsumptionMetrics;
+bool ResourceConsumption::isMetricsProfilingEnabled() {
+ return gProfileOperationResourceConsumptionMetrics;
}
-ResourceConsumption::ResourceConsumption() {
- if (gAggregateOperationResourceConsumptionMetrics &&
- !gMeasureOperationResourceConsumption.isEnabledAndIgnoreFCV()) {
- LOGV2_FATAL_NOTRACE(
- 5091600,
- "measureOperationResourceConsumption feature flag must be enabled to use "
- "aggregateOperationResourceConsumptionMetrics");
- }
+bool ResourceConsumption::isMetricsAggregationEnabled() {
+ return gAggregateOperationResourceConsumptionMetrics;
}
ResourceConsumption::MetricsCollector& ResourceConsumption::MetricsCollector::get(
diff --git a/src/mongo/db/stats/resource_consumption_metrics.h b/src/mongo/db/stats/resource_consumption_metrics.h
index 25282410324..1dc401aef88 100644
--- a/src/mongo/db/stats/resource_consumption_metrics.h
+++ b/src/mongo/db/stats/resource_consumption_metrics.h
@@ -45,7 +45,7 @@ namespace mongo {
*/
class ResourceConsumption {
public:
- ResourceConsumption();
+ ResourceConsumption() = default;
static ResourceConsumption& get(OperationContext* opCtx);
static ResourceConsumption& get(ServiceContext* svcCtx);
@@ -424,6 +424,11 @@ public:
static bool isMetricsCollectionEnabled();
/**
+ * Returns true if operations should profile resource consumption metrics.
+ */
+ static bool isMetricsProfilingEnabled();
+
+ /**
* Returns true if resource consumption metrics should be aggregated globally.
*/
static bool isMetricsAggregationEnabled();
diff --git a/src/mongo/db/stats/resource_consumption_metrics_test.cpp b/src/mongo/db/stats/resource_consumption_metrics_test.cpp
index bcb1b5335c5..3b14309fd08 100644
--- a/src/mongo/db/stats/resource_consumption_metrics_test.cpp
+++ b/src/mongo/db/stats/resource_consumption_metrics_test.cpp
@@ -53,7 +53,6 @@ class ResourceConsumptionMetricsTest : public ServiceContextTest {
public:
void setUp() {
_opCtx = makeOperationContext();
- ASSERT_OK(getServerParameter("measureOperationResourceConsumption")->setFromString("true"));
gAggregateOperationResourceConsumptionMetrics = true;
gDocumentUnitSizeBytes = 128;
gIndexEntryUnitSizeBytes = 16;