The Service Map for APM is here!

System Check

Agent Check Agent Check

Supported OS: Linux Mac OS Windows

Overview

Get metrics from your base system about the CPU, IO, load, memory, swap, and uptime. Other system-related checks can be found here:

  • Directory Check - Capture metrics from the files in given directories.
  • Disk Check - Capture metrics about the disk
  • Process check - Capture metrics from specific running processes on a system.

Setup

The System check is included in the Datadog Agent package, so you don’t need to install anything else on your server.

Data Collected

Metrics

system.cpu.guest
(gauge)
The percent of time the CPU spent running the virtual processor. Only applies to hypervisors.
shown as percent
system.cpu.idle
(gauge)
Percent of time the CPU spent in an idle state.
shown as percent
system.cpu.interrupt
(gauge)
The percentage of time that the processor is spending on handling Interrupts.
shown as percent
system.cpu.iowait
(gauge)
The percent of time the CPU spent waiting for IO operations to complete.
shown as percent
system.cpu.stolen
(gauge)
The percent of time the virtual CPU spent waiting for the hypervisor to service another virtual CPU. Only applies to virtual machines.
shown as percent
system.cpu.system
(gauge)
The percent of time the CPU spent running the kernel.
shown as percent
system.cpu.user
(gauge)
The percent of time the CPU spent running user space processes.
shown as percent
system.fs.file_handles.allocated
(gauge)
Number of allocated file handles over the system.
shown as file
system.fs.file_handles.allocated_unused
(gauge)
Number of allocated file handles unused over the system.
shown as file
system.fs.file_handles.in_use
(gauge)
The amount of used allocated file handles over the system max.
shown as fraction
system.fs.file_handles.max
(gauge)
Maximum of allocated files handles over the system
shown as file
system.fs.file_handles.used
(gauge)
Number of allocated file handles used over the system.
shown as file
system.fs.inodes.free
(gauge)
The number of free inodes.
shown as inode
system.fs.inodes.in_use
(gauge)
The number of inodes in use as a fraction of the total.
shown as fraction
system.fs.inodes.total
(gauge)
The total number of inodes.
shown as inode
system.fs.inodes.used
(gauge)
The number of inodes in use.
shown as inode
system.io.avg_q_sz
(gauge)
The average queue size of requests issued to the device.
shown as request
system.io.avg_rq_sz
(gauge)
The average size of requests issued to the device.
shown as sector
system.io.await
(gauge)
The average time for I/O requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
shown as millisecond
system.io.bytes_per_s
(gauge)
Byte transfer rate for this device.
shown as byte
system.io.r_await
(gauge)
The average time for read requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
shown as millisecond
system.io.r_s
(gauge)
The number of read requests issued to the device per second.
shown as request
system.io.rkb_s
(gauge)
The number of kibibytes read from the device per second.
shown as kibibyte
system.io.rrqm_s
(gauge)
The number of read requests merged per second that were queued to the device.
shown as request
system.io.svctm
(gauge)
The average service time for requests issued to the device.
shown as millisecond
system.io.util
(gauge)
The percent of CPU time during which I/O requests were issued to the device
shown as percent
system.io.w_await
(gauge)
The average time for write requests issued to the device to be served. This includes the time spent by the requests in queue and the time spent servicing them.
shown as millisecond
system.io.w_s
(gauge)
The number of write requests issued to the device per second.
shown as request
system.io.wkb_s
(gauge)
The number of kibibytes written to the device per second.
shown as kibibyte
system.io.wrqm_s
(gauge)
The number of write requests merged per second that were queued to the device.
shown as request
system.load.1
(gauge)
The average system load over one minute.
system.load.15
(gauge)
The average system load over fifteen minutes.
system.load.5
(gauge)
The average system load over five minutes.
system.load.norm.1
(gauge)
The average system load over one minute normalized by the number of CPUs.
system.load.norm.15
(gauge)
The average system load over fifteen minutes normalized by the number of CPUs.
system.load.norm.5
(gauge)
The average system load over five minutes normalized by the number of CPUs.
system.mem.buffered
(gauge)
The amount of physical RAM used for file buffers.
shown as byte
system.mem.cached
(gauge)
The amount of physical RAM used as cache memory.
shown as byte
system.mem.commit_limit
(gauge)
The total amount of memory currently available to be allocated on the system, based on the overcommit ratio. (Linux only)
shown as byte
system.mem.committed
(gauge)
The amount of physical memory for which space has been reserved on the disk paging file in case it must be written back to disk.
shown as byte
system.mem.committed_as
(gauge)
The amount of memory presently allocated on the system, even if it has not been "used" by processes as of yet. (Linux only)
shown as byte
system.mem.free
(gauge)
The amount of free RAM.
shown as byte
system.mem.nonpaged
(gauge)
The amount of physical memory used by the OS for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated.
shown as byte
system.mem.page_free
(gauge)
The amount of the page file that's free.
shown as byte
system.mem.page_pct_free
(gauge)
The amount of the page file in use as a fraction of the total.
shown as fraction
system.mem.page_tables
(gauge)
The amount of memory dedicated to the lowest page table level.
shown as byte
system.mem.page_total
(gauge)
The total size of the page file
shown as byte
system.mem.page_used
(gauge)
The amount of the page file in use.
shown as byte
system.mem.paged
(gauge)
The amount of physical memory used by the OS for objects that can be written to disk when they are not in use.
shown as byte
system.mem.pagefile.free
(gauge)
The amount of the page file that's free.
shown as byte
system.mem.pagefile.pct_free
(gauge)
The amount of the page file that's free as a fraction of the total.
shown as fraction
system.mem.pagefile.total
(gauge)
The total size of the page file
shown as byte
system.mem.pagefile.used
(gauge)
The amount of the page file in use.
shown as byte
system.mem.pct_usable
(gauge)
The amount of usable physical RAM as a fraction of the total.
shown as fraction
system.mem.shared
(gauge)
The amount of physical RAM used as shared memory.
shown as byte
system.mem.slab
(gauge)
The amount of memory used by the kernel to cache data structures for its own use.
shown as byte
system.mem.total
(gauge)
The total amount of physical RAM.
shown as byte
system.mem.usable
(gauge)
Value of MemAvailable from /proc/meminfo if present, but falls back to adding free + buffered + cached memory if not.
shown as byte
system.mem.used
(gauge)
The amount of RAM in use.
shown as byte
system.swap.cached
(gauge)
The amount of swap used as cache memory.
shown as byte
system.swap.free
(gauge)
The amount of free swap space.
shown as byte
system.swap.pct_free
(gauge)
The amount of swap space not in use as a fraction of the total.
shown as fraction
system.swap.total
(gauge)
The total amount of swap space.
shown as byte
system.swap.used
(gauge)
The amount of swap space in use.
shown as byte
system.uptime
(gauge)
The amount of time the system has been working and available.
shown as second

Agent Check: System cores

This check collects the number of CPU cores on a host and CPU times (i.e. system, user, idle, etc).

Setup

Installation

The system_core check is included in the Datadog Agent package, so you don’t need to install anything else on your server.

Configuration

  1. Edit the system_core.d/conf.yaml file in the conf.d/ folder at the root of your Agent’s directory. See the sample system_core.d/conf.yaml for all available configuration options:

    init_config:
    
    instances:
        - {}
    

    The Agent just needs one item in instances in order to enable the check. The content of the item doesn’t matter.

  2. Restart the Agent to enable the check.

Validation

Run the Agent’s status subcommand and look for system_core under the Checks section.

Data Collected

Metrics

system.core.count
(gauge)
The number of CPU cores on the host
shown as core
system.core.user
(gauge)
A given core's user-space CPU time
system.core.system
(gauge)
A given core's system CPU time
system.core.idle
(gauge)
A given core's idle CPU time

Depending on the platform, the check may collect other CPU time metrics, e.g. system.core.interrupt on Windows, system.core.iowait on Linux, etc.

Agent Check: Swap

This check monitors the number of bytes a host has swapped in and swapped out.

Installation

The system swap check is included in the Datadog Agent package, so you don’t need to install anything else on your server.

Configuration

  1. Edit the system_swap.d/conf.yaml file in the conf.d/ folder at the root of your Agent’s directory. See the sample system_swap.d/conf.yaml for all available configuration options:

    # This check takes no initial configuration
    init_config:
    
    instances: [{}]
    
  2. Restart the Agent to start collecting swap metrics.

Validation

Run the Agent’s status subcommand and look for system_swap under the Checks section.

Data Collected

Metrics

system.swap.swapped_in
(gauge)
Bytes of memory swapped in
system.swap.swapped_out
(gauge)
Bytes of memory swapped out