Teradata

Supported OS Linux Windows

Integration version2.2.1

Overview

Teradata is an enterprise-level relational database management system within a multi-cloud data platform.

This check monitors Teradata through the Datadog Agent. Enable the Datadog-Teradata integration to view Teradata performance, disk usage, and resource consumption.

Setup

Follow the instructions below to install and configure this check for an Agent running on a host. For containerized environments, see the Autodiscovery Integration Templates for guidance on applying these instructions.

Installation

The Teradata check is included in the Datadog Agent package.

Prepare Teradata

  1. Download and install the Teradata SQL Driver for Python using the embedded agent pip command for your operating system:

Linux

sudo -Hu dd-agent /opt/datadog-agent/embedded/bin/pip install teradatasql

Windows

%PROGRAMFILES%\Datadog\"Datadog Agent"\embedded<PYTHON_MAJOR_VERSION>\python -m pip install teradatasql
  1. Create a read-only datadog user with proper access to your Teradata Database. Start a BTEQ session on your Teradata Database:
CREATE USER "datadog" AS PASSWORD="<PASSWORD>";

Optional, but strongly recommended: Grant a new or existing role to the datadog user designated for read-only monitoring purposes.

GRANT "<READ_ONLY_ROLE>" TO "datadog"; 

The Teradata system grants the SELECT privilege to PUBLIC on most Data Dictionary views by default. All Teradata Database users have PUBLIC privileges.

  1. To collect resource usage metrics, enable the SPMA Resource Usage Table. This is done with the ctl Teradata Utility:
# Start ctl session
ctl

# View RSS screen
screen rss

# Enable SPMA resource usage table
SPMA=yes

# Save the configuration setting
write

Note: The SPMA Resource Table logs statistics every 10 minutes by default. The logging interval can be configured in the rss screen using ctl. Resource Usage logging may impact database performance. To reduce the frequency of Resource Usage logging, increase the logging interval of the Node Logging Rate setting. See the Teradata documentation for more information on Resource Usage Logging.

  1. The Teradata integration collects disk space metrics from the DBC.DiskSpaceV system view by default. To collect additional disk space metrics on your database tables, enable the collect_table_disk_metrics option.
collect_table_disk_metrics: true

To filter the monitored tables, configure the tables option:

Specify tables to monitor with a list:

tables:
    - <TABLE_1>
    - <TABLE_2>

Customize your monitored tables by specifying a map with the include and exclude options:

tables:
    include:
        - <TABLE_1>
        - <TABLE_2>
    exclude:
        - <TABLE_3>

Configuration

  1. Edit the teradata.d/conf.yaml file, in the conf.d/ folder at the root of your Agent’s configuration directory to start collecting your teradata performance data. See the sample teradata.d/conf.yaml for all available configuration options.

  2. Restart the Agent.

Validation

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

Data Collected

Metrics

teradata.amp.cpu_time
(gauge)
Number of seconds of AMP insert CPU time used by the user and account
Shown as second
teradata.amp.cpu_time_norm
(gauge)
Normalized AMP CPU time used by the user and account
Shown as second
teradata.amp.disk_io
(gauge)
Total number of reads and writes to disk by each AMP in the system
teradata.db_lock.blocks
(gauge)
Number of times a database lock was blocked
teradata.db_lock.deadlocks
(gauge)
Number of times a database lock was deadlocked
teradata.disk_space.alloc_perm
(gauge)
Current total allocation in bytes for permanent and user defined temporary table space. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.alloc_perm.total
(gauge)
Current total allocation in bytes for permanent and user defined temporary table space. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.alloc_spool
(gauge)
Current total allocation in bytes for spool and other system defined temporary table space. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.alloc_spool.total
(gauge)
Current total allocation in bytes for spool and other system defined temporary table space. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.alloc_temp
(gauge)
Current total allocation in bytes for temporary tables space. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.alloc_temp.total
(gauge)
Current total allocation in bytes for temporary tables space. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.curr_perm
(gauge)
Permanent space per AMP currently being used. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.curr_perm.total
(gauge)
Permanent space per AMP currently being used. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.curr_persist_spool
(gauge)
Persistent spool space per AMP currently being used by the user. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.curr_persist_spool.total
(gauge)
Persistent spool space per AMP currently being used by the user. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.curr_spool
(gauge)
Spool space per AMP currently being used by the user. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.curr_spool.total
(gauge)
Spool space per AMP currently being used by the user. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.curr_temp
(gauge)
The number of bytes currently used by a temporary table per virtual processor (vproc). Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.curr_temp.total
(gauge)
The number of bytes currently used by a temporary table per virtual processor (vproc). Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.max_perm
(gauge)
Maximum permanent space, in bytes, that is allocated to the database on a specified AMP. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.max_perm.total
(gauge)
Maximum permanent space, in bytes, that is allocated to the database on a specified AMP. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.max_prof_spool
(gauge)
The profile SPOOL space limit per AMP for the user if the user is assigned a profile which has a SPOOL space setting. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.max_prof_spool.total
(gauge)
The profile SPOOL space limit per AMP for the user if the user is assigned a profile which has a SPOOL space setting. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.max_prof_temp
(gauge)
The profile TEMPORARY space limit per AMP for the user if the user is assigned a profile which has a TEMPORARY space setting. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.max_prof_temp.total
(gauge)
The profile TEMPORARY space limit per AMP for the user if the user is assigned a profile which has a TEMPORARY space setting. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.max_spool
(gauge)
Maximum spool space, in bytes, that is allocated to the database on a specified AMP. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.max_spool.total
(gauge)
Maximum spool space, in bytes, that is allocated to the database on a specified AMP. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.max_temp
(gauge)
Maximum temporary space, in bytes, that is allocated to the database on a specified AMP. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.max_temp.total
(gauge)
Maximum temporary space, in bytes, that is allocated to the database on a specified AMP. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.peak_perm
(gauge)
Maximum amount of permanent space per AMP that has been used by the database since the last time the DBC.ClearPeakDisk macro was run. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.peak_perm.total
(gauge)
Maximum amount of permanent space per AMP that has been used by the database since the last time the DBC.ClearPeakDisk macro was run. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.peak_persist_spool
(gauge)
Maximum persistent spool space, in bytes, that was used at any one time by the database on a specified AMP. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.peak_persist_spool.total
(gauge)
Maximum persistent spool space, in bytes, that was used at any one time by the database on a specified AMP. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.peak_spool
(gauge)
Maximum spool space, in bytes, that was used at any one time by the database on a specified AMP. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.peak_spool.total
(gauge)
Maximum spool space, in bytes, that was used at any one time by the database on a specified AMP. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.peak_temp
(gauge)
Peak number of bytes used at one time by a temporary table per vproc. Table level metric tagged by td_table and td_database.
Shown as byte
teradata.disk_space.peak_temp.total
(gauge)
Peak number of bytes used at one time by a temporary table per vproc. Database level metric tagged by td_database.
Shown as byte
teradata.disk_space.perm_skew
(gauge)
Permissible skew limit percent for permanent space usage at the AMP level. Table level metric tagged by td_table and td_database.
teradata.disk_space.perm_skew.total
(gauge)
Permissible skew limit percent for permanent space usage at the AMP level. Database level metric tagged by td_database.
teradata.disk_space.spool_skew
(gauge)
Permissible skew limit percent for spool space usage at the AMP level. Table level metric tagged by td_table and td_database.
teradata.disk_space.spool_skew.total
(gauge)
Permissible skew limit percent for spool space usage at the AMP level. Database level metric tagged by td_database.
teradata.disk_space.temp_skew
(gauge)
Permissible skew limit percent for temporary space usage at the AMP level. Table level metric tagged by td_table and td_database.
teradata.disk_space.temp_skew.total
(gauge)
Permissible skew limit percent for temporary space usage at the AMP level. Database level metric tagged by td_database.
teradata.file_lock.blocks
(gauge)
Number of lock requests that were blocked
teradata.file_lock.deadlocks
(gauge)
Number of deadlocks detected on lock requests
teradata.file_lock.enters
(gauge)
Number of times a lock was requested
teradata.io.throttle_count
(gauge)
Number of times an I/O was throttled
teradata.io.throttle_time
(gauge)
Total I/O Throttle Time in milliseconds
Shown as millisecond
teradata.io.throttle_time_max
(gauge)
Maximum I/O Throttle Time in milliseconds
Shown as millisecond
teradata.mem.ctxt_page_reads
(gauge)
Number of pages swapped in
Shown as page
teradata.mem.ctxt_page_writes
(gauge)
Number of pages swapped out
Shown as page
teradata.mem.fsg.cache_size
(gauge)
Allocated memory for FSG cache. This includes the memory allocated for TIM (VHCacheKB)
Shown as kilobyte
teradata.mem.kernel_inuse_size
(gauge)
Amount of Kernel memory in use by PDE in kilobytes
Shown as kilobyte
teradata.mem.page_faults_major
(gauge)
Number of major page faults. If the page is not loaded in memory at the time the fault is generated, then it is called a major or hard page fault
Shown as page
teradata.mem.page_faults_minor
(gauge)
Number of minor page faults. If the page is loaded in memory at the time the fault is generated, but is not marked in the memory management unit as being loaded in memory, then it is called a minor or soft page fault.
Shown as page
teradata.mem.seg_cache_size
(gauge)
Current MB of segment cache
Shown as megabyte
teradata.mem.seg_in_use_size
(gauge)
Current MB of PDE segment files in use
Shown as megabyte
teradata.mem.seg_max_avail_size
(gauge)
Current MB of maximum PDE segment files available
Shown as megabyte
teradata.mem.seg_mdl.alloc
(gauge)
Number of segments of all sizes allocated for the MDL pool during this period
teradata.mem.seg_mdl.alloc_size
(gauge)
KB of segments of all sizes allocated for the MDL pool during this period
Shown as kilobyte
teradata.mem.seg_mdl.free
(gauge)
Number of dirty segments of all sizes freed from the MDL pool during this period
teradata.mem.seg_mdl.free_size
(gauge)
KB of dirty segments of all sizes freed from the MDL pool during this period
Shown as kilobyte
teradata.mem.seg_mdl.inuse_size
(gauge)
Total memory in use by segment MDLs
Shown as kilobyte
teradata.mem.seg_mdl.recycle
(gauge)
Number of segments of all sizes recycled to the MDL pool during this period
teradata.mem.seg_mdl.recycle_size
(gauge)
KB of segments of all sizes recycled to the MDL pool during this period
Shown as kilobyte
teradata.mem.seg_mdl.release
(gauge)
Number of clean segments of all sizes freed from the MDL pool during this period
teradata.mem.seg_mdl.release_size
(gauge)
KB of clean segments of all sizes freed from the MDL pool during this period
Shown as kilobyte
teradata.mem.txt_page_reads
(gauge)
Number of pages paged minus the pages swapped in
Shown as page
teradata.mem.vh_cache_size
(gauge)
Current size of the VH cache in KB. This field is populated by theFSG subsystem
Shown as kilobyte
teradata.process.blocked
(gauge)
Number of threads blocked waiting for I/O at the current time
Shown as thread
teradata.process.cpu_exec
(gauge)
Time in milliseconds CPUs are busy executing user execution code, that is, time spent in a user state on behalf of a process. CPUUExec reports the CPU time not used in the system call, or in the kernel
Shown as millisecond
teradata.process.cpu_idle
(gauge)
Time in milliseconds CPUs are idle and not waiting for I/O
Shown as millisecond
teradata.process.cpu_io_wait
(gauge)
Time in milliseconds CPUs are idle and waiting for I/O completion
Shown as millisecond
teradata.process.cpu_serv
(gauge)
Time in milliseconds CPUs are busy executing user service code, that is, privileged work performing system services on behalf of user execution processes which do not have root access CPUUServ reports if a task executing a step used CPU while in the kernel
Shown as millisecond
teradata.process.cpu_throttle
(gauge)
Number of times that WM CPU COD throttling was triggered
teradata.process.cpu_throttle_time
(gauge)
Time in milliseconds that WM CPU COD throttling was active
Shown as millisecond
teradata.process.ready
(gauge)
Number of runnable or ready tasks, also called threads, able to execute on CPUs when a CPU becomes available
Shown as thread
teradata.process.ready_max
(gauge)
Maximum number of ready tasks, also called threads, able to execute on CPUs when a CPU becomes available
Shown as thread

Events

The Teradata integration does not include any events.

Service Checks

teradata.can_connect
Returns CRITICAL if the Agent is unable to connect to and collect metrics from the monitored Teradata instance. Returns OK otherwise.
Statuses: ok, critical

teradata.can_query
Returns CRITICAL if the Agent is unable to query the monitored Teradata instance. Returns OK otherwise.
Statuses: ok, critical

Troubleshooting

Need help? Contact Datadog support.