Documentation forDatabase Performance Analyzer

DPA alert categories and types

DPA provides a wide range of alert types in four categories.

DPA alert categories

DPA provides the following alert categories:

  • Wait Time alerts are triggered when wait time exceeds a user-defined threshold, or when wait time is much higher than expected (an anomaly).

  • Resources alerts are triggered when a resource metric, such as CPU utilization or memory usage, exceeds its threshold.

  • Administrative alerts are used to monitor the health of the database system.

  • Custom alerts are user-defined SQL statements or stored procedures that are run against the monitored database or the DPA repository.

DPA Wait Time alert types

For Wait Time alerts, DPA evaluates the amount of wait time that occurred during each alert execution interval. An alert is triggered if the wait time during an interval exceeds the specified threshold.

To create a Wait Time alert, see Configure a DPA Wait Time alert.

Alert type DB type Description
Database Instance Wait Time Anomaly All Alerts you when the wait time of an instance was abnormally high during the most recently completed hour. The wait time status is calculated at the top of each hour using the DPA anomaly detection algorithm.
Total Database Instance Wait Time All Alerts you when the total wait time for an entire database instance exceeds the threshold.
Total SQL Wait Time for a Single SQL All Alerts you when the total execution time for the specified SQL statement exceeds the threshold.
Average Wait Time for a Single SQL All Alerts you when the average execution time for the specified SQL statement exceeds the threshold.
Total SQL Wait Time for Single Wait All Alerts you when the total wait time for the specified wait type or event exceeds the threshold.
Total SQL Wait Time - Program All Alerts you when the total execution time for SQL statements executed by the specified program or application exceeds the threshold.
Total SQL Wait Time - Database User All Alerts you when the total execution time for SQL statements executed by the specified database user exceeds the threshold.
Total SQL Wait Time - O/S User Oracle Alerts you when the total execution time for SQL statements executed by the specified operating system (OS) user exceeds the threshold.
Total SQL Wait Time - Machine All Alerts you when the total execution time for SQL statements executed on the specified computer exceeds the threshold.
Total SQL Wait Time - Database All except Oracle Alerts you when the total execution time for the specified database in an instance exceeds the threshold.
Total SQL Wait Time - Custom for Oracle Oracle

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed by the specified database user
  • SQL statements executed by the specified OS user
  • SQL statements executed on the specified computer
Total SQL Wait Time - Custom for SQL Server/Azure SQL MI/Sybase SQL Server, ASMI, Sybase

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed by the specified database user
  • SQL statements executed on the specified computer
  • Specified database in an instance
Total SQL Wait Time - Custom for Azure SQL Database Azure SQL Database

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed by the specified database user
  • SQL statements executed on the specified computer
Total SQL Wait Time - Custom for MySQL MySQL

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed by the specified database user
  • SQL statements executed on the specified computer
  • Specified database in an instance
  • Wait events associated with the specified wait instrument
  • SQL statements that perform the specified operation, such as select or fetch
Total SQL Wait Time - Custom for Db2 Db2

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed on the specified computer
  • Specified database (the Database field is ignored when a single database is being monitored)
Total SQL Wait Time - Custom for PostgreSQL PostgreSQL

Alerts you when the total wait time for any combination of the following exceeds the threshold: 

  • Specified wait type or event
  • Specified SQL statement
  • SQL statements executed by the specified program or application
  • SQL statements executed by the specified database user
  • SQL statements executed on the specified computer
  • Specified database in an instance
RAC Overhead Wait Time Oracle Alerts you when the total wait time for RAC events exceeds the threshold.
Total Blocking Wait Time Oracle, SQL Server, Azure SQL DB, ASMI, Sybase, MySQL, PostgreSQL Alerts you when the amount of time that sessions waited due to blocking exceeds the threshold. Wait time due to blocking is shown on the Blocking tab.

DPA Resources alert types

For Resources alerts, DPA looks at the metric values collected during each execution interval and applies the calculation that you specify in the alert definition (percentage, average, median, maximum, or minimum). An alert is triggered if the resulting calculated value exceeds the specified threshold.

Resource alert types apply to any database type.

To create a Resources alert, see Configure a DPA Resources alert.

Alert type DB type Description
Single Resource Metric All Alerts you if the calculated value for a specific resource metric exceeds the threshold.
All Metrics in a Category All Alerts you if the calculated value for all resource metrics a category exceeds the threshold.

DPA Administrative alert types

Alerts in the Administrative category are triggered when DPA detects certain conditions or events.

To create an Administrative alert, see Configure a DPA Administrative alert.

Alert type DB type Description
Database Instance Availability All Alerts you if a monitored database instance is not available. DPA determines availability by attempting to connect to the instance.
Database Freespace SQL Server, Azure SQL DB, ASMI, Sybase, Db2 Alerts you if the percentage of free space in any database in the instance (or in the single database for Azure SQL databases) falls below the threshold.
Database Instance Parameter Changes All except MySQL Alerts you if any database instance parameter settings are changed.
Tablespace Freespace Oracle, Db2 Alerts you if the percentage of free space in any tablespace in the monitored instance falls below the threshold. For Db2, only database-managed tablespaces (DMS) are evaluated.
Transaction Log Freespace SQL Server, ASMI, Sybase, Db2 Alerts you if the percentage of free space in the transaction log of any database in the instance falls below the threshold.
Oracle PDB Move Oracle Alerts you when a monitored PDB database instance is moved to or from a CDB container.
Oracle PDB Database Instance Availability Oracle Alerts you if a monitored PDB database instance is not available. DPA determines availability by attempting to connect to the instance.
Oracle Alert Log Entries Oracle 11g and later Alerts you when the alert log contains more than the minimum number of occurrences of the specified string. DPA searches for the specified string in the alert log (from the x$dbgalertext table) and returns all unique matching entries and the count of each entry. The thresholds for each alert level specify the minimum and maximum number of occurrences for that level.
Oracle Long Running Transaction Oracle Alerts you when a transaction runs for more than the number of seconds specified by the threshold.
Oracle Percent Redo Logs Unarchived Oracle Alerts you when the percentage of unarchived redo logs exceeds the threshold.
Oracle Redo Log Switching Frequency Oracle Alerts you if the number of redo log switches during an execution interval exceeds the threshold. To avoid alerts during periods when frequent log switches are expected, you can specify a time range to include or exclude.
Oracle Session Limit Oracle Alerts you if the percentage of active sessions exceeds the threshold. To determine the percentage of active sessions, DPA compares the number of active sessions to the maximum number of sessions. The maximum number of sessions is configured in the v$parameter 'sessions' row.
Oracle Stale Statistics Oracle 10g and later

Alerts you if tables or indexes have stale or empty statistics. You can specify schemas to include or exclude. The alert notification lists all tables and indexes (in included schemas) that have stale or empty statistics.

To avoid repetitive alerts, SolarWinds recommends that you increase the execution interval for this alert to at least one day.

Oracle Archiver Errors Oracle Alerts you if the archiver process receives an error while trying to archive a redo log or if the online log files are not being archived. If the problem is not resolved quickly, the database stops executing transactions. This alert is typically triggered when the destination device is out of space to store the redo log file.
Windows Service Not Running - SQL Server SQL Server 2005 and later Alerts you if the specified Windows service is not running in the selected SQL Server database instances.
SQL Server Abnormal Mirroring Status SQL Server 2005 and later Alerts you if the SQL Server mirroring status is anything other than Synchronized.
SQL Server Availability Group Failover SQL Server 2012 and later Alerts you if an availability group has failed over from one instance to another.
SQL Server Availability Group Status Change SQL Server 2012 and later Alerts you if an availability group has had a change in status to Partially Healthy or Not Healthy. An Alert Level of High indicates Not Healthy and Medium indicates Partially Healthy.
SQL Server Deadlocks SQL Server 2008 and later, ASMI Alerts you if the number of deadlocks that occurred on an instance exceeds the threshold.
SQL Server Error Log Alert SQL Server 2005 and later, ASMI Alerts you if error logs contain a specified string or pair of strings.
SQL Server/Azure SQL Ineffective Statistics SQL Server 2005 and later, ASMI, Azure SQL DB

Alerts you if indexes have ineffective statistics. It uses criteria such as time since last stats update, percent of rows changed, and table size. You can specify database to include or exclude. The alert notification lists all indexes (in included databases) with ineffective statistics.

To avoid repetitive alerts, SolarWinds recommends that you increase the execution interval for this alert to at least one day.

SQL Server Job Failure SQL Server, ASMI Alerts you if a job fails. The alert notification reports all jobs that failed since the last time this alert was executed.
SQL Server Backup Frequency SQL Server Alerts you if the number of days since the last backup of the specified type (full, differential, or transaction log) exceeds the threshold.
SQL Server Recovery Backup Assets Size SQL Server Alerts you if the size of all backup assets required to recover a database exceeds the threshold.
SQL Server Backup Jobs Running SQL Server Alerts you if the number of currently running backup jobs for a specified database instance exceeds the threshold.
SQL Server Backup Time Allotted SQL Server Alerts you if the time required to complete the last backup of the specified type (full, differential, or transaction log) exceeds the threshold.
SQL Server Log has Many Virtual Logs SQL Server 2005 and later, ASMI Alerts you if the number of Virtual Logs in any database exceeds the threshold. To limit the result set and reduce the required DPA Repository space, set the Minimum number of virtual logs.
SQL Server Long Running Jobs SQL Server 2005 and later, ASMI Alerts you if any jobs (in SQL Agent) are running longer than two standard deviations from the mean execution time based on previous execution times.
DPA Database Instance Monitor Errors All Alerts you if any errors occurred while monitoring a database instance.
DPA Resource Collection Errors All Alerts you if any errors occurred while collecting resource data for a database instance.
MySQL Temporary Tables Creation Rate MySQL Alerts you if the number of temporary tables created per second exceeds the threshold.
MySQL Temporary Tables on Disk Creation Rate MySQL Alerts you if the number of temporary tables created on disk per second exceeds the threshold.
MySQL Schema Freespace MySQL Alerts you if the percentage of free space in any schema exceeds the threshold. Free space is occupied by the MySQL database, but it is not being used.
MySQL Table Freespace MySQL Alerts you if the percentage of free space in any table exceeds the threshold. Free space is occupied by the MySQL database table, but it is not being used.
MySQL Oversized Index MySQL Alerts you if any table has defined indexes that occupy more overall space than the percentage specified as the threshold.
MySQL Tables Missing Primary Key MySQL This alert determines if any of the MySQL tables does not have PK defined
MySQL Latest Deadlock Alert MySQL Alerts you if there is an unseen deadlock in a database.
MySQL InnoDB Buffer Pool Utilization Alert MySQL Alerts you if the percentage of free buffer pages is below the threshold. Data reflects activity against tables managed by the InnoDB (or an InnoDB-based) storage engine.
MySQL InnoDB Log File Size Alert MySQL Alerts you if the REDO log file size is below the threshold. Data reflects activity against tables managed by the InnoDB (or an InnoDB-based) storage engine.
MySQL File Sorts on Disk Alert MySQL Alerts you if a database instance frequently sorts to disk instead of performing the sort in memory. The alert is triggered if the number of disk sorts during an execution interval exceeds the threshold.
MySQL Replication Seconds Behind Master Alert MySQL Alerts you if the replication (slave) instance is more than the specified number of seconds behind the master.
MySQL Replication Threads Availability Alert MySQL Alerts you if the replication (slave) MySQL database threads (I/O and slave) are unavailable.
MySQL Redundant Indexes Alert MySQL Alerts you if any tables in a database instance contain redundant indexes.
MySQL Duplicate Indexes Alert MySQL Alerts you if any tables in a database instance contain duplicate indexes.
PostgreSQL Autovacuum Status PostgreSQL Alerts you if the autovacuum process is OFF. The autovacuum process helps prevent table bloat.
PostgreSQL Track Counts Status PostgreSQL Alerts you if the track_counts setting is OFF. The track_counts setting must be ON to allow PostgreSQL to collect statistics on database activity. The autovacuum process requires these statistics.
PostgreSQL Track Activities Status PostgreSQL Alerts you if the track_activities setting is OFF. The track_activities setting enables tracking of currently executing SQL statements, and it must be ON to allow DPA to monitor the database instance.
PostgreSQL Last Analyze PostgreSQL

If the PostgreSQL autovacuum process is disabled, it does not automatically trigger an analyze operation to update statistics. This alert warns you if the time period since the last manually run analyze operation exceeds a threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Last Auto Analyze PostgreSQL

The PostgreSQL autovacuum process can automatically trigger an analyze operation, which updates the statistics used to determine query plans. This alert warns you if the time period since the last automatically triggered analyze operation exceeds a threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Last Vacuum PostgreSQL

If the PostgreSQL autovacuum process is disabled, it does not run automatically to remove dead tuples (outdated versions of rows that are no longer needed). This alert warns you if the time period since the last manual vacuum operation exceeds a threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Last AutoVacuum PostgreSQL

The PostgreSQL autovacuum process runs automatically to remove dead tuples (outdated versions of rows that are no longer needed). This alert warns you if the time period since the last autovacuum exceeds a threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Long Running Vacuum PostgreSQL

This alert notifies you when a vacuum operation runs for longer than the specified threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Long Running Query PostgreSQL

This alert notifies you when any query other than the autovacuum process runs for longer than the specified threshold.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Dead Tuple PostgreSQL

This alert monitors the row count or percentage of dead tuples in the database instance. A high percentage can indicate that the PostgreSQL vacuuming process is not healthy. A dead tuple is an outdated version of a row that was updated or deleted. It is no longer needed by any transaction, and the vacuuming process should remove it so the space can be used for new rows.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Total Idle in Transaction Connections PostgreSQL

Each PostgreSQL instance has a maximum number of connections (max_connections in pg_settings). This alert warns you when a high percentage of the available connections are “idle in transaction”, meaning that an application or query started a transaction but the transaction is now idle, possibly waiting on something else.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Total Connections PostgreSQL

Each PostgreSQL instance has a maximum number of connections (max_connections in pg_settings). This alert warns you when a high percentage of the available connections are in use. It includes connections in all states.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL User Role Expiry PostgreSQL

This alert notifies you when a user role will expire within the specified number of days or has already expired.

This alert can use data from multiple databases in the cluster. To enable DPA to collect data from multiple PostgreSQL databases, you must configure a foreign data wrapper.

PostgreSQL Total Table Bloat in Database PostgreSQL This alert warns you if the percentage of bloat (unused space that was not reclaimed) exceeds a threshold.
PostgreSQL Collect Database Size PostgreSQL This alert collects the size of each database in a PostgreSQL cluster. This alert is never triggered. The collected data is used as input for the PostgreSQL Database/Table Percentage Growth alert.
PostgreSQL Collect Relation Table Size PostgreSQL This alert collects the size of each relation (table) in a PostgreSQL cluster. This alert is never triggered. The collected data is used as input for the PostgreSQL Database/Table Percentage Growth alert.
PostgreSQL Database/Table Percentage Growth PostgreSQL This alert warns you if the size of the database or the size of all relations increase by more than the specified percentage during an execution interval. Depending on which size you are monitoring, the PostgreSQL Collect Database Size alert or the PostgreSQL Collect Relation (Table) Size alert must also be configured.

DPA Custom alert types

Custom alerts are triggered based on the value(s) returned by a user-defined SQL statement or stored procedure. Custom alerts apply to all database types.

To create a Custom alert, see Configure a DPA Custom alert.

Alert type DB type Description
Custom SQL Alert - Single Numeric Return All Executes a user-defined SQL statement that returns a single numeric value. The alert is triggered if the value exceeds a threshold.
Custom SQL Alert - Multiple Numeric Return All Executes a user-defined SQL statement that returns one or more rows with a string in the first column and a numeric value in the second column. The alert is triggered if any numeric value exceeds a threshold.
Custom SQL Alert - Single Boolean Return All Executes a user-defined SQL statement that returns a single string value of TRUE or FALSE (not case-sensitive). The alert is triggered if the SQL statement returns TRUE.
Custom SQL Alert - Single Alert Status Return All Executes a user-defined SQL statement that returns a single string value that specifies the alert status. Valid values are NORMAL, INFO, LOW, MEDIUM, and HIGH (not case-sensitive).
Custom Procedure Alert - Single Numeric Return All Executes a user-defined stored procedure that returns a single numeric value. The alert is triggered if the value exceeds a threshold.
Custom Procedure Alert - Single Boolean Return All Executes a user-defined stored procedure that returns a single string value of TRUE or FALSE (not case-sensitive). The alert is triggered if the stored procedure returns TRUE.
Custom Procedure Alert - Single Alert Status Return All Executes a user-defined stored procedure that returns a single string value that specifies the alert status. Valid values are NORMAL, INFO, LOW, MEDIUM, and HIGH (not case-sensitive).