The Service Map for APM is here!

Microsoft Exchange Server

Agent Check Agent Check

Supported OS: Windows

Overview

Get metrics from Microsoft Exchange Server

  • Visualize and monitor Exchange server performance

Setup

Installation

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

Configuration

  1. Edit the exchange_server.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory to start collecting your Exchange Server performance data.
    ```yaml init_config:

instances: # “.” means the current host - host: . # # The additional metrics is a list of additional counters to collect. The # list is formatted as follows: # [’’, , ‘’, , ] # # is the name of the PDH Counter Set (the name of the counter) # is the specific counter instance to collect, for example # “Default Web Site”. Specify ‘none’ For all instances of the counter. # is the individual counter to report # is the name you want to show up in Datadog # is from the standard choices for all agent checks, such as gauge, # rate, histogram or counter #
# additional_metrics: # - - MSExchange Content Filter Agent # - none # - Messages that Bypassed Scanning # - exchange.content_filter.bypassed_messages # - gauge ```

  1. Restart the Agent

Validation

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

Data Collected

Metrics

exchange.adaccess_domain_controllers.ldap_read
(gauge)
Shows the time in milliseconds (ms) to send an LDAP read request to the specified domain controller and receive a response.
shown as millisecond
exchange.adaccess_domain_controllers.ldap_search
(gauge)
Shows the time (in ms) to send an LDAP search request and receive a response.
shown as millisecond
exchange.adaccess_processes.ldap_read
(gauge)
Shows the time (in ms) to send an LDAP read request to the specified domain controller and receive a response.
shown as millisecond
exchange.adaccess_processes.ldap_search
(gauge)
Shows the time (in ms) to send an LDAP search request and receive a response.
shown as millisecond
exchange.processor.cpu_time
(gauge)
Shows the percentage of time that the processor is executing application or operating system processes. This is when the processor isn't idle.
shown as percent
exchange.processor.cpu_user
(gauge)
Shows the percentage of processor time spent in user mode. User mode is a restricted processing mode designed for applications, environment subsystems, and integral subsystems.
shown as percent
exchange.processor.cpu_privileged
(gauge)
Shows the percentage of processor time spent in privileged mode. Privileged mode is a processing mode designed for operating system components and hardware-manipulating drivers. It allows direct access to hardware and all memory.
shown as percent
exchange.processor.queue_length
(gauge)
Indicates the number of threads each processor is servicing. Processor Queue Length shows the number of threads that are delayed in the Processor Ready Queue and are waiting to be scheduled for execution. The value listed is the last observed value at the time the measurement was taken.
shown as thread
exchange.memory.available
(gauge)
Shows the amount of physical memory, in megabytes (MB), immediately available for allocation to a process or for system use. It's equal to the sum of memory assigned to the standby (cached), free, and zero page lists.
shown as mebibyte
exchange.memory.committed
(gauge)
Shows the ratio of Memory\Committed Bytes to the Memory\Commit Limit.
shown as percent
exchange.network.outbound_errors
(gauge)
Indicates the number of outbound packets that couldn't be transmitted because of errors.
shown as error
exchange.network.tcpv6.connection_failures
(gauge)
Shows the number of TCP connections for which the current state is either ESTABLISHED or CLOSE-WAIT.
shown as error
exchange.network.tcpv4.conns_reset
(count)
Shows the number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.
shown as connection
exchange.network.tcpv6.conns_reset
(count)
Shows the number of times TCP connections have made a direct transition to the CLOSED state from either the ESTABLISHED state or the CLOSE-WAIT state.
shown as connection
exchange.netlogon.semaphore_waiters
(gauge)
The number of threads that are waiting to obtain the semaphore.
shown as thread
exchange.netlogon.semaphore_holders
(gauge)
The number of threads that are holding the semaphore.
shown as thread
exchange.netlogon.semaphore_acquires
(count)
The total number of times that the semaphore has been obtained over the lifetime of the security channel connection, or since system startup for _Total.
exchange.netlogon.semaphore_timeouts
(count)
The total number of times that a thread has timed out while it waited for the semaphore over the lifetime of the security channel connection, or since system startup for _Total.
shown as timeout
exchange.netlogon.semaphore_hold_time
(gauge)
The average time (in seconds) that the semaphore is held over the last sample.
shown as second
exchange.database.io_reads_avg_latency
(gauge)
Shows the average length of time, in milliseconds (ms), per database read operation.
shown as millisecond
exchange.database.io_writes_avg_latency
(gauge)
Shows the average length of time, in ms, per database write operation.
shown as millisecond
exchange.database.io_log_writes_avg_latency
(gauge)
Shows the average length of time, in ms, per Log write operation.
shown as millisecond
exchange.database.io_db_reads_recovery_avg_latency
(gauge)
Shows the average length of time, in ms, per passive database read operation.
shown as millisecond
exchange.database.io_db_writes_recovery_avg_latency
(gauge)
Shows the average length of time, in ms, per passive database write operation.
shown as millisecond
exchange.database.io_db_reads_attached_persec
(gauge)
Shows the number of database read operations per second for each attached database instance.
shown as read
exchange.database.io_db_writes_attached_persec
(gauge)
Shows the number of database write operations per second for each attached database instance.
shown as write
exchange.database.io_log_writes_persec
(gauge)
Shows the number of log writes per second for each database instance.
shown as write
exchange.activemanager.database_mounted
(gauge)
Shows the number of active database copies on the server.
exchange.rpc.averaged_latency
(gauge)
Shows the latency, in milliseconds (ms), averaged for the past 1,024 packets.
shown as millisecond
exchange.rpc.requests
(gauge)
Shows the number of client requests currently being processed by the RPC Client Access service.
shown as request
exchange.rpc.active_user_count
(gauge)
Shows the number of unique users that have shown some activity in the last 2 minutes.
shown as user
exchange.rpc.conn_count
(gauge)
Shows the total number of client connections maintained.
shown as connection
exchange.rpc.ops_persec
(gauge)
Shows the rate at which RPC operations occur, per second.
shown as operation
exchange.rpc.user_count
(gauge)
Shows the number of users connected to the service.
shown as user
exchange.httpproxy.server_locator_latency
(gauge)
Shows the average latency (ms) of MailboxServerLocator web service calls.
shown as millisecond
exchange.httpproxy.avg_auth_latency
(gauge)
Shows the average time spent authenticating CAS requests over the last 200 samples.
shown as millisecond
exchange.httpproxy.clientaccess_processing_latency
(gauge)
Shows the average latency (ms) of CAS processing time (does not include time spent proxying) over the last 200 requests.
shown as millisecond
exchange.httpproxy.mailbox_proxy_failure_rate
(gauge)
Shows the percentage of connectivity related failures between this Client Access Server and MBX servers over the last 200 samples.
shown as percent
exchange.httpproxy.outstanding_requests
(gauge)
Shows the number of concurrent outstanding proxy requests.
shown as request
exchange.httpproxy.proxy_requests_persec
(gauge)
Shows the number of proxy requests processed each second.
shown as request
exchange.httpproxy.requests_persec
(gauge)
Shows the number of requests processed each second.
shown as request
exchange.is.store.rpc_requests
(gauge)
Indicates the overall RPC requests currently executing within the information store process.
shown as request
exchange.is.clienttype.rpc_latency
(gauge)
Shows a server RPC latency, in ms, averaged for the past 1,024 packets for a particular client protocol.
shown as millisecond
exchange.is.store.rpc_latency
(gauge)
RPC Latency average (msec) is the average latency in milliseconds of RPC requests per database. Average is calculated over all RPCs since exrpc32 was loaded.
shown as millisecond
exchange.is.store.rpc_ops_persec
(gauge)
Shows the number of RPC operations per second for each database instance.
shown as operation
exchange.is.clienttype.rpc_ops_persec
(gauge)
Shows the number of RPC operations per second for each client type connection.
shown as operation
exchange.activesync.requests_persec
(gauge)
Shows the number of HTTP requests received from the client via ASP.NET per second. Determines the current Exchange ActiveSync request rate. Used only to determine current user load.
shown as request
exchange.activesync.ping_pending
(gauge)
Shows the number of ping commands currently pending in the queue.
shown as command
exchange.activesync.sync_persec
(gauge)
Shows the number of sync commands processed per second. Clients use this command to synchronize items within a folder.
shown as command
exchange.owa.unique_users
(gauge)
Shows the number of unique users currently logged on to Outlook Web App. This value monitors the number of unique active user sessions, so that users are only removed from this counter after they log off or their session times out. Determines current user load.
shown as user
exchange.owa.requests_persec
(gauge)
Shows the number of requests handled by Outlook Web App per second. Determines current user load.
shown as request
exchange.autodiscover.requests_persec
(gauge)
Shows the number of Autodiscover service requests processed each second. Determines current user load.
shown as request
exchange.ws.requests_persec
(gauge)
Shows the number of requests processed each second. Determines current user load.
shown as request
exchange.ws.current_connections_total
(gauge)
Shows the current number of connections established with the Web service. Determines current user load.
shown as connection
exchange.ws.current_connections_default_website
(gauge)
Shows the current number of connections established to the Default website which corresponds to the number of connections hitting the Front End CAS server role. Determines current user load.
shown as connection
exchange.ws.connection_attempts
(gauge)
Shows the rate that connections to the Web service are being attempted. Determines current user load.
shown as connection
exchange.ws.other_attempts
(gauge)
Shows the rate HTTP requests are made that don't use the OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, MOVE, COPY, MKCOL, PROPFIND, PROPPATCH, SEARCH, LOCK, or UNLOCK methods. Determines current user load.
shown as connection
exchange.workload_management.active_tasks
(gauge)
Shows the number of active tasks currently running in the background for workload management.
shown as task
exchange.workload_management.completed_tasks
(gauge)
Shows the number of workload management tasks that have been completed.
shown as task
exchange.workload_management.queued_tasks
(gauge)
Shows the number of workload management tasks that are currently queued up waiting to be processed.
shown as task

Events

The Exchange server check does not include any events at this time.

Service Checks

The Exchange server check does not include any service checks at this time.


Mistake in the docs? Feel free to contribute!