Integrate with Datadog
On this page
You can configure Atlas to send metric data about your project to your Datadog dashboards.
Note
If you configure your Atlas project to send alerts and events to Datadog, you do not need to follow this procedure. Atlas sends project metrics to Datadog through the same integration used to send alerts and events.
You can also configure Datadog to receive Atlas alerts. To learn more, see Notification Options.
Required Access
To integrate Atlas with Datadog, you must have Project Owner
access
to the project. Users with Organization Owner
access must add
themselves to the project as a Project Owner
.
Prerequisites
Datadog integration is available only on M10+
clusters.
Note
Tags aren't supported for Datadog integrations. If you integrate with
Datadog, continue using labels. To define labels, use the
labels
parameter in the Modify One Cluster
API endpoint.
To integrate Atlas with Datadog, you must have a Datadog account and a Datadog API key. Datadog grants you an API key when you first create a Datadog account.
If you do not have an existing Datadog account, you can sign up at https://app.datadoghq.com/signup.
Procedure
To create or update a Datadog integration using the Atlas CLI, run the following command:
atlas integrations create DATADOG [options]
To learn more about the command syntax and parameters, see the Atlas CLI documentation for atlas integrations create DATADOG.
To configure an Atlas integration with Datadog using the Atlas UI:
In Atlas, go to the Project Integrations page.
If it's not already displayed, select the organization that contains your desired project from the Organizations menu in the navigation bar.
If it's not already displayed, select your desired project from the Projects menu in the navigation bar.
Next to the Projects menu, expand the Options menu, then click Integrations.
The Project Integrations page displays.
Link Datadog to your project using your Datadog API key.
Click Configure for the Datadog integration card.
Enter your Datadog API key in the input box.
Select your API region.
Atlas supports the following Datadog regions in the Atlas UI:
US1
US3
US5
EU1
AP1
Datadog uses
US1
by default.To learn more about Datadog's regions, see Datadog Sites.
Click Save.
Performance Metrics Available to Datadog
Datadog tracks the following metric data for your Atlas cluster. The metric names in parentheses are the names used in the Datadog UI.
Metric Names | Metric Type | Description |
---|---|---|
CONNECTIONS (mongodb.atlas.connections.current) | Process | Number of open connections currently open on the cluster. |
DB_STORAGE_TOTAL (mongodb.atlas.stats.totalstoragesize) DB_DATA_SIZE_TOTAL (mongodb.atlas.stats.totaldatasize) DB_INDEX_SIZE_TOTAL (mongodb.atlas.stats.totalindexsize) | Process | Total database storage size, data size, and index size on the
cluster in bytes. |
DISK_LATENCY_READS (mongodb.atlas.system.disk.latency.reads) DISK_LATENCY_WRITES (mongodb.atlas.system.disk.latency.writes) | Disk | Latency gauge in milliseconds for read requests and
write requests. |
DISK_MAX_LATENCY_READS (mongodb.atlas.system.disk.max.latency.reads) DISK_MAX_LATENCY_WRITES (mongodb.atlas.system.disk.max.latency.writes) | Disk | Maximum latency gauge in milliseconds for read requests and write
requests. |
DISK_QUEUE_DEPTH (mongodb.atlas.system.disk.queuedepth) | Disk | Average length of the queue of requests issued
to the disk partition that MongoDB uses over the time
period specified by the metric granularity. |
MAX_DISK_QUEUE_DEPTH (mongodb.atlas.system.disk.max.queuedepth) | Disk | Maximum values over the time period specified by the metric
granularity for the average length of the queue of requests
issued to the disk partition that MongoDB uses. |
DOCUMENT_METRICS_RETURNED (mongodb.atlas.metrics.document.returned) DOCUMENT_METRICS_INSERTED (mongodb.atlas.metrics.document.inserted) DOCUMENT_METRICS_UPDATED (mongodb.atlas.metrics.document.updated) DOCUMENT_METRICS_DELETED (mongodb.atlas.metrics.document.deleted) | Process | Number of documents read or written per second. |
NETWORK_BYTES_IN (mongodb.atlas.network.bytes.in) | Process | Average rate of physical bytes (after any wire compression) sent
to the database server per second. |
NETWORK_BYTES_OUT (mongodb.atlas.network.bytes.out) | Process | Average rate of physical bytes (after any wire compression) sent
from the database server per second. |
NETWORK_NUM_REQUESTS (mongodb.atlas.network.num.requests) | Process | Average rate of requests sent to the database server per second. |
OPCOUNTER_CMD (mongodb.atlas.opcounters.command) OPCOUNTER_QUERY (mongodb.atlas.opcounters.query) OPCOUNTER_UPDATE (mongodb.atlas.opcounters.update) OPCOUNTER_DELETE (mongodb.atlas.opcounters.delete) OPCOUNTER_GETMORE (mongodb.atlas.opcounters.getmore) OPCOUNTER_INSERT (mongodb.atlas.opcounters.insert) | Process | Number of operations per second, separated by operation type. |
OP_EXECUTION_TIME_READS (mongodb.atlas.oplatencies.reads.avg) OP_EXECUTION_TIME_WRITES (mongodb.atlas.oplatencies.writes.avg) OP_EXECUTION_TIME_COMMANDS (mongodb.atlas.oplatencies.commands.avg) | Process | Average operation time in milliseconds, separated by operation
type. |
QUERY_TARGETING_SCANNED_OBJECTS_PER_RETURNED (mongodb.atlas.metrics.queryexecutor.scannedobjectsperreturned) | Process | Ratio measuring number of objects scanned over objects
returned. Lower values indicate more efficient queries. |
REPLICATION_LAG (mongodb.atlas.replset.replicationlag) | Process | Amount of time in seconds that updates to the secondary delay
behind updates to the primary. |
REPLICATION_OPLOG_WINDOW (mongodb.atlas.replset.oplogWindow) | Process | Estimated average number, in seconds, of database
operations available in the primary's replication oplog. This
metric is based on oplog churn. A full resync is required if
replication lag on a secondary node exceeds the replication
oplog window and replication headroom reaches zero. |
REPLICATION_STATUS_HEALTH (mongodb.atlas.replstatus.health) | Process | Number that indicates a replica set member's health. A value of
You might see an inaccurate health status in the following scenarios:
IMPORTANT: If the health status is |
REPLICATION_STATUS_STATE (mongodb.atlas.replstatus.state) | Process | |
SYSTEM_MEMORY_USED (mongodb.atlas.system.memory.used) SYSTEM_MEMORY_AVAILABLE (mongodb.atlas.system.memory.available) | System | Gauge that indicates physical memory used, in bytes. |
MAX_SYSTEM_MEMORY_USED (mongodb.atlas.system.memory.max.used) MAX_SYSTEM_MEMORY_AVAILABLE (mongodb.atlas.system.memory.max.available) | System | Gauge that indicates the maximum physical memory used, in bytes. |
SYSTEM_NORMALIZED_CPU_USER (mongodb.atlas.system.cpu.norm.user) SYSTEM_NORMALIZED_CPU_KERNEL (mongodb.atlas.system.cpu.norm.kernel) SYSTEM_NORMALIZED_CPU_NICE (mongodb.atlas.system.cpu.norm.nice) SYSTEM_NORMALIZED_CPU_IOWAIT (mongodb.atlas.system.cpu.norm.iowait) SYSTEM_NORMALIZED_CPU_IRQ (mongodb.atlas.system.cpu.norm.irq) SYSTEM_NORMALIZED_CPU_SOFTIRQ (mongodb.atlas.system.cpu.norm.softirq) SYSTEM_NORMALIZED_CPU_GUEST (mongodb.atlas.system.cpu.norm.guest) SYSTEM_NORMALIZED_CPU_STEAL (mongodb.atlas.system.cpu.norm.steal) | System | Percent of time utilized by logical CPUs across various
processes for the server. These values are normalized with
respect to the number of logical CPU cores. |
MAX_SYSTEM_NORMALIZED_CPU_USER (mongodb.atlas.system.cpu.max.norm.user) MAX_SYSTEM_NORMALIZED_CPU_KERNEL (mongodb.atlas.system.cpu.max.norm.kernel) MAX_SYSTEM_NORMALIZED_CPU_NICE (mongodb.atlas.system.cpu.max.norm.nice) MAX_SYSTEM_NORMALIZED_CPU_IOWAIT (mongodb.atlas.system.cpu.max.norm.iowait) MAX_SYSTEM_NORMALIZED_CPU_IRQ (mongodb.atlas.system.cpu.max.norm.irq) MAX_SYSTEM_NORMALIZED_CPU_SOFTIRQ (mongodb.atlas.system.cpu.max.norm.softirq) MAX_SYSTEM_NORMALIZED_CPU_GUEST (mongodb.atlas.system.cpu.max.norm.guest) MAX_SYSTEM_NORMALIZED_CPU_STEAL (mongodb.atlas.system.cpu.max.norm.steal) | System | Maximum values over the time period specified by the metric
granularity for the percent of time utilized by logical CPUs
across various processes for the server. These values are
normalized with respect to the number of logical CPU cores. |
PROCESS_NORMALIZED_CPU_USER (mongodb.atlas.system.cpu.mongoprocess.norm.user) PROCESS_NORMALIZED_CPU_KERNEL (mongodb.atlas.system.cpu.mongoprocess.norm.kernel) PROCESS_NORMALIZED_CPU_CHILDREN_USER (mongodb.atlas.system.cpu.mongoprocess.norm.childrenuser) PROCESS_NORMALIZED_CPU_CHILDREN_KERNEL (mongodb.atlas.system.cpu.mongoprocess.norm.childrenkernel) | Process | Percent of time utilized by logical CPUs across various
processes specific to the MongoDB process in the server. These
values are normalized with respect to the number of logical CPU
cores. |
MAX_PROCESS_NORMALIZED_CPU_USER (mongodb.atlas.system.cpu.mongoprocess.max.norm.user) MAX_PROCESS_NORMALIZED_CPU_KERNEL (mongodb.atlas.system.cpu.mongoprocess.max.norm.kernel) MAX_PROCESS_NORMALIZED_CPU_CHILDREN_USER (mongodb.atlas.system.cpu.mongoprocess.max.norm.childrenuser) MAX_PROCESS_NORMALIZED_CPU_CHILDREN_KERNEL (mongodb.atlas.system.cpu.mongoprocess.max.norm.childrenkernel) | Process | Maximum values over the time period specified by the metric
granularity for the percent of time utilized by logical CPUs
across various processes specific to the MongoDB process in the
server. These values are normalized with respect to the number
of logical CPU cores. |
MEMORY_RESIDENT (mongodb.atlas.mem.resident) MEMORY_VIRTUAL (mongodb.atlas.mem.virtual) | Process | Memory (in MB ) consumed by the MongoDB process on
the server, separated by memory type. |
OPCOUNTER_REPL_CMD (mongodb.atlas.opcountersrepl.command) OPCOUNTER_REPL_UPDATE (mongodb.atlas.opcountersrepl.update) OPCOUNTER_REPL_DELETE (mongodb.atlas.opcountersrepl.delete) OPCOUNTER_REPL_INSERT (mongodb.atlas.opcountersrepl.insert) | Process | Measure rate of database operations on MongoDB
secondaries, as
collected from the MongoDB You can view these metrics on the Opcounters - Repl chart, accessed via Cluster Metrics. |
OPLOG_RATE_GB_PER_HOUR (mongodb.atlas.replset.oplograte) | Process | The average rate of oplog
the primary generates in gigabytes per hour. |
TOTAL_NUMBER_OF_GETMORE_COMMANDS (mongodb.atlas.search.index.stats.commands.getmore) | Atlas Search | Total number of getmore commands run on all Atlas Search queries. |
TOTAL_NUMBER_OF_DELETES (mongodb.atlas.search.index.stats.deletes) | Atlas Search | Total number of documents or fields (specified in the index
definition) removed. |
TOTAL_NUMBER_OF_INDEX_FIELD (mongodb.atlas.search.index.stats.index.fields) | Atlas Search | Total number of unique fields present in the Atlas Search index. |
TOTAL_INDEX_SIZE_ON_DISK (mongodb.atlas.search.index.stats.index.size) | Atlas Search | Total size of all indexes on disk. |
TOTAL_NUMBER_OF_INSERTS_SERIES (mongodb.atlas.search.index.stats.inserts) | Atlas Search | Total number of documents or fields (specified in the index
definition) that Atlas Search indexed. |
MAX_REPLICATION_LAG (mongodb.atlas.search.index.stats.max.replication.lag) | Atlas Search | |
TOTAL_NUMBER_OF_UPDATES (mongodb.atlas.search.index.stats.updates) | Atlas Search | Total number of documents or fields (specified in the index
definition) that Atlas Search updated. |
TOTAL_NUMBER_OF_ERROR_QUERIES (mongodb.atlas.search.index.stats.queries.error) | Atlas Search | Total number of queries for which Atlas Search is unable to return a
response. |
TOTAL_NUMBER_OF_SUCCESS_QUERIES (mongodb.atlas.search.index.stats.queries.success) | Atlas Search | Total number of queries for which Atlas Search successfully returned a
response. |
TOTAL_NUMBER_OF_TOTAL_QUERIES (mongodb.atlas.search.index.stats.queries.total) | Atlas Search | Total number of queries submitted to Atlas Search. |
JVM_CURRENT_MEMORY (mongodb.atlas.search.jvm.current.memory) | Atlas Search | Amount of memory that the JVM heap is currently
using. |
JVM_MAX_MEMORY (mongodb.atlas.search.jvm.max.memory) | Atlas Search | Total available memory in the JVM heap. |
DISK_PARTITION_SPACE_FREE (mongodb.atlas.system.disk.space.free) DISK_PARTITION_SPACE_USED (mongodb.atlas.system.disk.space.used) DISK_PARTITION_SPACE_PERCENT_FREE (mongodb.atlas.system.disk.space.percentfree) DISK_PARTITION_SPACE_PERCENT_USED (mongodb.atlas.system.disk.space.percentused) | Disk | Measure free disk space and used disk space (in bytes) on the
disk partition used by MongoDB. |
MAX_DISK_PARTITION_SPACE_FREE (mongodb.atlas.system.disk.max.space.free) MAX_DISK_PARTITION_SPACE_USED (mongodb.atlas.system.disk.max.space.used) MAX_DISK_PARTITION_SPACE_PERCENT_FREE (mongodb.atlas.system.disk.max.space.percentfree) MAX_DISK_PARTITION_SPACE_PERCENT_USED (mongodb.atlas.system.disk.max.space.percentused) | Disk | Maximum values over the time period specified by the metric
granularity for free disk space and used disk
space (in bytes) on the disk partition used by MongoDB. |
DISK_PARTITION_IOPS_READ (mongodb.atlas.system.disk.iops.reads) DISK_PARTITION_IOPS_WRITE (mongodb.atlas.system.disk.iops.writes) DISK_PARTITION_IOPS_TOTAL (mongodb.atlas.system.disk.iops.total) | Disk | Measure throughput of IOPS for the disk partition used by
MongoDB. |
MAX_DISK_PARTITION_IOPS_READ (mongodb.atlas.system.disk.max.iops.reads) MAX_DISK_PARTITION_IOPS_WRITE (mongodb.atlas.system.disk.max.iops.writes) MAX_DISK_PARTITION_IOPS_TOTAL (mongodb.atlas.system.disk.max.iops.total) | Disk | Maximum values over the time period specified by the metric
granularity for the throughput of IOPS for the
disk partition used by MongoDB. |
SYSTEM_NETWORK_BYTES_IN (mongodb.atlas.system.network.bytes.in) | System | Average rate of physical bytes received per second. |
SYSTEM_NETWORK_BYTES_OUT (mongodb.atlas.system.network.bytes.out) | System | Average rate of physical bytes transmitted per second. |
MAX_SYSTEM_NETWORK_IN (mongodb.atlas.system.network.max.bytes.in) | System | Maximum values over the time period specified by the metric
granularity for the average rate of physical bytes received per
second. |
MAX_SYSTEM_NETWORK_OUT (mongodb.atlas.system.network.max.bytes.out) | System | Maximum values over the time period specified by the metric
granularity for the average rate of physical bytes transmitted
per second. |
CACHE_BYTES_READ_INTO (mongodb.atlas.wiredtiger.cache.bytes_read_into_cache) CACHE_BYTES_WRITTEN_FROM (mongodb.atlas.wiredtiger.cache.bytes_written_from_cache) | Process | Measure average rate of bytes read into and written from
WiredTiger's cache. |
CACHE_USED_BYTES (mongodb.atlas.wiredtiger.cache.bytes_currently_in_cache) CACHE_DIRTY_BYTES (mongodb.atlas.wiredtiger.cache.tracked_dirty_bytes_in_cache) | Process | Measure number of bytes of data and number of bytes of dirty
data in WiredTiger's cache. |
TICKETS_AVAILABLE_READS (mongodb.atlas.wiredtiger.concurrenttransactions.read.available) TICKETS_AVAILABLE_WRITES (mongodb.atlas.wiredtiger.concurrenttransactions.write.available) | Process | Measure number of read and write operations in the
storage engine. |
GLOBAL_LOCK_CURRENT_QUEUE_READERS (mongodb.atlas.global.lock.current.queue.readers) GLOBAL_LOCK_CURRENT_QUEUE_WRITERS (mongodb.atlas.global.lock.current.queue.writers) GLOBAL_LOCK_CURRENT_QUEUE_TOTAL (mongodb.atlas.global.lock.current.queue.total) | Global | Gauge that indicates the number of operations currently queued
due to locks that Atlas
holds on reads, writes, or combined reads and writes. |
AVG_OBJECT_SIZE (dbstats.avg.object.size) | Gauge | Average size of each document in bytes. This is the
dataSize divided by the number of documents. The
scale argument does not affect the
avgObjSize value. |
COLLECTIONS (mongodb.atlas.dbstats.collections) | Gauge | Number of collections in the database. |
DATA_SIZE (mongodb.atlas.dbstats.data.size) | Gauge | Total size of the uncompressed data held in the database. |
FILE_SIZE (mongodb.atlas.dbstats.file.size) | Gauge | Total size of all disk space in use on the filesystem where MongoDB
stores data. |
INDEX_SIZE (mongodb.atlas.dbstats.index.size) | Gauge | Sum of the disk space allocated to all indexes in the database,
including free index space. |
INDEXES (mongodb.atlas.dbstats.indexes) | Gauge | Total number of indexes across all collections in the database. |
NUM_EXTENTS (mongodb.atlas.dbstats.num.extents) | Gauge | Contains a count of the number of extents in the database across all collections. |
OBJECTS (mongodb.atlas.dbstats.objects) | Gauge | Number of objects (specifically, documents) in the
database across all collections. |
STORAGE_SIZE (mongodb.atlas.dbstats.storage.size) | Gauge | Sum of the disk space allocated to all collections in the database for
document storage, including free space. |
VIEWS (mongodb.atlas.dbstats.views) | Gauge | Number of views in the database. |
COLLECTION_READ_LATENCY (mongodb.atlas.latencyStats.read.sum) COLLECTION_WRITE_LATENCY (mongodb.atlas.latencyStats.write.sum) COLLECTION_COMMANDS_LATENCY (mongodb.atlas.latencyStats.write.sum) COLLECTION_TOTAL_LATENCY (mongodb.atlas.latencyStats.total.sum) | Counter | A 64-bit integer giving the latency in microseconds
for read, write, command, and total requests. |
COLLECTION_READ_OPS (mongodb.atlas.latencyStats.read.count) COLLECTION_WRITE_OPS (mongodb.atlas.latencyStats.write.count) COLLECTION_COMMANDS_OPS (mongodb.atlas.latencyStats.write.count) COLLECTION_TOTAL_OPS (mongodb.atlas.latencyStats.total.count) | Counter | A 64-bit integer giving the number of operations
performed on the collection since startup for read,
write, command, and total requests. |
READ_HISTOGRAM_P50 (mongodb.atlas.latencyStats.read.p50) WRITE_HISTOGRAM_P50 (mongodb.atlas.latencyStats.write.p50) COMMANDS_HISTOGRAM_P50 (mongodb.atlas.latencyStats.commands.p50) TOTAL_HISTOGRAM_P50 (mongodb.atlas.latencyStats.total.p50) | Counter | Number of operations on the 50th percentile in the latency histogram
for read, write, command, and total requests. |
READ_HISTOGRAM_P95 (mongodb.atlas.latencyStats.read.p95) WRITE_HISTOGRAM_P95 (mongodb.atlas.latencyStats.write.p95) COMMANDS_HISTOGRAM_P95 (mongodb.atlas.latencyStats.commands.p95) TOTAL_HISTOGRAM_P95 (mongodb.atlas.latencyStats.total.p95) | Counter | Number of operations on the 95th percentile in the latency histogram
for read, write, command, and total requests. |
READ_HISTOGRAM_P99 (mongodb.atlas.latencyStats.read.p99) WRITE_HISTOGRAM_P99 (mongodb.atlas.latencyStats.write.p99) COMMANDS_HISTOGRAM_P99 (mongodb.atlas.latencyStats.commands.p99) TOTAL_HISTOGRAM_P99 (mongodb.atlas.latencyStats.total.p99) | Counter | Number of operations on the 99th percentile in the latency histogram
for read, write, command, and total requests. |
Tags Available to Datadog
In addition to any cluster tags, Datadog sends the following tags as labels on certain metrics:
Datadog Tags | Description |
---|---|
organizationname | The Atlas organization associated with the metric. |
projectname | The Atlas project associated with the metric. |
clustername | The Atlas cluster associated with the metric. |
replicasetname | The replica set associated with the metric. |
shardedclustername | The sharded cluster associated with the metric. |
databasename | The database associated with the metric. |
collectionname | The collection associated with the metric. |
hostnameport | The port number associated with your Atlas hostname. |
hostnamestate | The state of your Atlas hostname (primary, secondary, or individual process).
You can use this tag to filter collection-level latency metrics when querying
your sharded cluster or replica set. |