- Reference >
- Database Commands >
- Diagnostic Commands >
- profile
profile¶
On this page
Definition¶
-
profile¶ Changed in version 4.0: The command can be run on
mongoswithprofilelevel:0to set theslowmsandsampleRatefor the system log; i.e. you cannot enable the profiler on amongos.-1to read the current settings.
For a
mongodinstance, the command enables, disables, or configures the Database Profiler. The profiler captures and records data on the performance of write operations, cursors, and database commands on a runningmongodinstance. If the profiler is disabled, the command sets theslowmsandsampleRatefor logging slow operations to the diagnostic log.For
mongosinstance, the command sets theslowmsandsampleRateconfiguration settings, which configure how operations get written to the diagnostic log.The profiler is off by default.
Important
Profiling can impact performance and shares settings with the system log. Carefully consider any performance and security implications before configuring and enabling the profiler on a production deployment.
See Profiler Overhead for more information on potential performance degradation.
The
profilecommand has the following syntax:Field Type Description profileint Configures the profiler level. The following profiler levels are available:
Level Description 0The profiler is off and does not collect any data. This is the default profiler level. 1The profiler collects data for operations that take longer than the value of slowms.2The profiler collects data for all operations. Since profiling is not available on
mongos, theprofilecommand cannot be used to set the profiling level to a value other than0on amongosinstance.slowmsint Optional. Default: 100
The slow operation time threshold, in milliseconds. Operations that run for longer than this threshold are considered slow.
When
logLevelis set to0, MongoDB records slow operations to the diagnostic log at a rate determined byslowOpSampleRate. Starting in MongoDB 4.2, the secondaries of replica sets log all oplog entry messages that take longer than the slow operation threshold to apply regardless of the sample rate.At higher
logLevelsettings, all operations appear in the diagnostic log regardless of their latency with the following exception: the logging of slow oplog entry messages by the secondaries. The secondaries log only the slow oplog entries; increasing thelogLeveldoes not log all oplog entries.Note
This argument affects the same setting as the configuration option
slowOpThresholdMs.sampleRatedouble Optional. Default: 1.0
The fraction of slow operations that should be profiled or logged.sampleRateaccepts values between 0 and 1, inclusive.Note
This argument affects the same setting as the configuration option
slowOpSampleRateand does not affect the slow oplog entry log messages on secondaries (available starting in MongoDB 4.2).New in version 3.6.
The db.getProfilingStatus() and
db.setProfilingLevel() shell methods provide wrappers around the profile
command.