# Copyright (C) 2022-present MongoDB, Inc. # # This program is free software: you can redistribute it and/or modify # it under the terms of the Server Side Public License, version 1, # as published by MongoDB, Inc. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # Server Side Public License for more details. # # You should have received a copy of the Server Side Public License # along with this program. If not, see # . # # As a special exception, the copyright holders give permission to link the # code of portions of this program with the OpenSSL library under certain # conditions as described in each individual source file and distribute # linked combinations including the program with the OpenSSL library. You # must comply with the Server Side Public License in all respects for # all of the code used other than as permitted herein. If you modify file(s) # with this exception, you may extend this exception to your version of the # file(s), but you are not obligated to do so. If you do not wish to do so, # delete this exception statement from your version. If you delete this # exception statement from all source files in the program, then also delete # it in the license file. # # Server parameters for the 'analyzeShardKey' command. global: cpp_namespace: "mongo::analyze_shard_key" imports: - "mongo/db/basic_types.idl" server_parameters: analyzeShardKeyMonotonicityCorrelationCoefficientThreshold: description: The correlation coefficient threshold used to determine if a shard key is monotonically changing. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gMonotonicityCorrelationCoefficientThreshold default: 0.7 validator: gt: 0 lte: 1 analyzeShardKeyNumMostCommonValues: description: The number of most common shard key values to return. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gNumMostCommonValues default: 5 validator: gt: 0 lte: 1000 analyzeShardKeyNumRanges: description: The number of ranges to partition the shard key space into when calculating the hotness of shard key ranges. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gNumShardKeyRanges default: 100 validator: gt: 0 lte: 10000 analyzeShardKeyNumSamplesPerRange: description: The number of documents to sample per shard key range. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gNumSamplesPerShardKeyRange default: 10 validator: gt: 0 lte: 10000 analyzeShardKeySplitPointExpirationSecs: description: The amount of time in seconds that a split point document generated by an analyzeShardKey command should exist before being removed by the TTL monitor. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gAnalyzeShardKeySplitPointExpirationSecs default: expr: 15 * 60 validator: gt: 0 queryAnalysisQueryStatsSmoothingFactor: description: The smoothing factor for the exponential moving average of the number of queries that a sampler executes per second. The average determines the share of the cluster-wide sample rate that will be assigned to the sampler. set_at: startup cpp_vartype: double cpp_varname: gQueryAnalysisQueryStatsSmoothingFactor default: 0.125 validator: gt: 0 lt: 1 queryAnalysisSamplerInActiveThresholdSecs: description: The minimum amount of time in seconds for a sampler to not report its uptime before it is considered as inactive. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gQueryAnalysisSamplerInActiveThresholdSecs default: expr: 5 * 60 validator: gt: 0 queryAnalysisSamplerConfigurationRefreshSecs: description: The interval in seconds at which a sampler refreshes its query analysis sample rates. set_at: startup cpp_vartype: int cpp_varname: gQueryAnalysisSamplerConfigurationRefreshSecs default: 5 validator: gt: 0 queryAnalysisSamplerBurstMultiplier: description: The ratio between the number of queries allowed to be sampled during a burst and the number of queries allowed to be sampled per second (i.e. the sample rate). set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gQueryAnalysisSamplerBurstMultiplier default: 2 validator: gte: 1 queryAnalysisWriterIntervalSecs: description: The interval in seconds at which sampled queries are written to disk. set_at: startup cpp_vartype: int cpp_varname: gQueryAnalysisWriterIntervalSecs default: 90 validator: gt: 0 queryAnalysisWriterMaxMemoryUsageBytes: description: The maximum amount of memory in bytes that the writer is allowed to use for buffering sampled queries and diffs combined. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gQueryAnalysisWriterMaxMemoryUsageBytes default: expr: 100 * 1024 * 1024 validator: gt: 0 queryAnalysisWriterMaxBatchSize: description: The maximum number of sampled queries to write to disk at once. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gQueryAnalysisWriterMaxBatchSize default: 100000 validator: gt: 0 queryAnalysisWriterMinThreadPoolSize: description: The minimum number of threads in the writer's thread pool. set_at: startup cpp_vartype: int cpp_varname: gQueryAnalysisWriterMinThreadPoolSize default: 0 validator: gte: 0 queryAnalysisWriterMaxThreadPoolSize: description: The maximum number of threads in the writer's thread pool. set_at: startup cpp_vartype: int cpp_varname: gQueryAnalysisWriterMaxThreadPoolSize default: 8 validator: gte: 1 queryAnalysisSampleExpirationSecs: description: The amount of time in seconds that a sampled query document should exist before being removed by the TTL monitor. set_at: [startup, runtime] cpp_vartype: AtomicWord cpp_varname: gQueryAnalysisSampleExpirationSecs default: expr: 7 * 24 * 3600 validator: gt: 0