diff options
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; |