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:
|
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:
|
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:
|
Total SQL Wait Time - Custom for MySQL | MySQL |
Alerts you when the total wait time for any combination of the following exceeds the threshold:
|
Total SQL Wait Time - Custom for Db2 | Db2 |
Alerts you when the total wait time for any combination of the following exceeds the threshold:
|
Total SQL Wait Time - Custom for PostgreSQL | PostgreSQL |
Alerts you when the total wait time for any combination of the following exceeds the threshold:
|
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 | 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 |
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 | Alerts you if the specified Windows service is not running in the selected SQL Server database instances. |
SQL Server Abnormal Mirroring Status | SQL Server | Alerts you if the SQL Server mirroring status is anything other than Synchronized. |
SQL Server Availability Group Failover | SQL Server | Alerts you if an availability group has failed over from one instance to another. |
SQL Server Availability Group Status Change | SQL Server | 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, ASMI | Alerts you if the number of deadlocks that occurred on an instance exceeds the threshold. |
SQL Server Error Log Alert | SQL Server, ASMI | Alerts you if error logs contain a specified string or pair of strings. |
SQL Server/Azure SQL Ineffective Statistics | SQL Server, 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, 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, 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). |