Docs Menu
Docs Home
/
MongoDB Manual
/ / /

Full Time Diagnostic Data Capture

On this page

  • Behavior
  • Details

To help MongoDB engineers analyze server behavior, mongod and mongos processes include a Full Time Diagnostic Data Capture (FTDC) mechanism. FTDC is enabled by default. Due to its importance in debugging deployments, FTDC thread failures are fatal and stop the parent mongod or mongos process.

Note

FTDC User Permissions on Windows

On Windows, to collect system data such as disk, cpu, and memory, FTDC requires Microsoft access permissions from the following groups:

  • Performance Monitor Users

  • Performance Log Users

If the user running mongod and mongos is not an administrator, add them to these groups to log FTDC data. For more information, see the Microsoft documentation here.

FTDC periodically collects statistics produced by the following commands:

Depending on the host operating system, the diagnostic data may include one or more of the following utilization statistics:

  • CPU utilization

  • Memory utilization

  • Disk utilization related to performance. FTDC does not include data related to storage capacity.

  • Network performance statistics. FTDC only captures metadata and does not capture or inspect any network packets.

Note

If the mongod process runs in a container, FTDC reports utilization statistics from the perspective of the container instead of the host operating system. For example, if a the mongod runs in a container that is configured with RAM restrictions, FTDC calculates memory utilization against the container's RAM limit, as opposed to the host operating system's RAM limit.

FTDC collects statistics produced by the following commands on file rotation or startup:

mongod processes store FTDC data files in a diagnostic.data directory under the instances storage.dbPath. All diagnostic data files are stored under this directory. For example, given a dbPath of /data/db, the diagnostic data directory would be /data/db/diagnostic.data.

mongos processes store FTDC data files in a diagnostic directory relative to the systemLog.path log path setting. MongoDB truncates the logpath's file extension and concatenates diagnostic.data to the remaining name. For example, given a path setting of /var/log/mongodb/mongos.log, the diagnostic data directory would be /var/log/mongodb/mongos.diagnostic.data.

FTDC data files are compressed and not human-readable. They inherit the same file access permissions as the MongoDB data files. Only users with access to FTDC data files can transmit the FTDC data.

MongoDB engineers cannot access FTDC data without explicit permission and assistance from system owners or operators.

FTDC data never contains any of the following information:

  • Samples of queries, query predicates, or query results

  • Data sampled from any end-user collection or index

  • System or MongoDB user credentials or security certificates

FTDC data contains certain host machine information such as hostnames, operating system information, and the options or settings used to start the mongod or mongos. This information may be considered protected or confidential by some organizations or regulatory bodies, but is not typically considered to be Personally Identifiable Information (PII). For clusters where these fields are configured with protected, confidential, or PII data, please notify MongoDB engineers before sending FTDC data to coordinate appropriate security measures.

You can view the FTDC source code on the MongoDB Github Repository. The ftdc_system_stats_*.ccp files specifically define any system-specific diagnostic data captured.

FTDC runs with the following defaults:

  • Data capture every 1 second

  • 200MB maximum diagnostic.data folder size.

These defaults are designed to provide useful data to MongoDB engineers with minimal impact on performance or storage size. These values only require modifications if requested by MongoDB engineers for specific diagnostic purposes.

To disable FTDC, start up the mongod or mongos with the diagnosticDataCollectionEnabled: false option in the setParameter settings of your configuration file:

setParameter:
diagnosticDataCollectionEnabled: false

Disabling FTDC may increase the time or resources required when analyzing or debugging issues with support from MongoDB engineers. For information on MongoDB Support, visit Get Started With MongoDB Support.

Back

UNIX ulimit

On this page