Database metrics
The following Database Instances entities can be monitored with SolarWinds Observability SaaS: MySQL, MongoDB, PostgreSQL, SQL Server, and Redis.
Many of the collected metrics from Database Instance entities are displayed as widgets in SolarWinds Observability explorers; additional metrics may be collected and available in the Metrics Explorer. You can also create an alert for when an entity's metric value moves out of a specific range. See Entities in SolarWinds Observability SaaS for information about entity types in SolarWinds Observability SaaS.
When Database Instance entities are monitored, metrics from related entities may also be included in Database Instance viewers and dashboards.
The following table lists the dbo.
in the search box.
Metric | Units | Description |
---|---|---|
sw.metrics.healthscore
|
Percent (%) |
Health score. A health score provides real-time insight into the overall health and performance of your monitored entities. The health score is calculated based on anomalies detected for the entity, alerts triggered for the entity's metrics, and the status of the entity. The health score is displayed as a single numerical value that ranges from a Good (70-100) to Moderate (40-69) to Bad (0-39) distinction. To view the health score for database instance entities in the Metrics Explorer, filter the |
dbo.host.queries.errors.tput
|
EPS |
Errors, Error Rate. The number of recorded errors for your database instances per second; the total number of errors returned per second across your monitored databases. Incorrect database responses may indicate request are failing, while throughput and response time appear healthy. |
dbo.host.queries.latency_us
|
milliseconds (ms) |
Response Time. The amount of query latency in milliseconds per query execution across your monitored databases. May be displayed as:
|
dbo.host.queries.p99_latency_us
|
milliseconds (ms) |
Response Time 99th percentile. The amount of response time in the 99th percentile value for each of the top selected queries. |
dbo.host.queries.time_us
|
Count |
Load. The load on your monitored databases, as a number of requests executing simultaneously. Concurrency reveals load (or demand) in a way that is orthogonal to variations in request speed or frequency. |
dbo.host.queries.tput
|
QPS |
Throughput. The number of queries or statements completed per second. This is a metric of traffic intensity and frequency, showing how many requests your servers are processing. |
Database host metrics
Metric | Description |
---|---|
dbo.host.callers
|
Metrics related to queries, grouped by connected client. IP address bytes are underscore separated as the dot is a reserved character in metric names. Comes from the protocol decoder. These metrics are only available with the On-Host configuration. |
dbo.host.connections
|
The number of connections throughput and connection time throughput. These metrics are only available with the On-Host configuration. |
dbo.host.dbs
|
Metrics by database, such as affected_rows, data_length , index_total , row_count , total_length , etc.
This data is used by the Profiler to allow ranking of Databases.
|
dbo.host.queries
|
Query data, grouped by q, p, e, or c (for query/prepare/execute/close) and query digest. Each metric is suffixed with .tput (except time_us and tput itself) as they are per-second derivatve values. This information comes from the protocol decoder, in addition to PERFORMANCE_SCHEMA and PG_STAT_STATEMENTS .
This data is used by the Profiler to allow ranking of Queries. |
dbo.host.queries.tagged.*
|
Used by the profiler to allow ranking of Query Tags. Query tags are only available with the On-Host configuration. |
dbo.host.samples
|
Contains the count of failed_rules per query digest.
|
dbo.host.status
|
Total bytes_sent and bytes_received .
|
dbo.host.tables
|
Metrics by table: data_length , index_length , total_length , data_free , and row_count . Comes from INFORMATION_SCHEMA in MySQL and pg_statio_user_tables view in PostgreSQL. |
dbo.host.totals
|
Total metrics for all queries combined, for an entire host, regardless of database type. |
dbo.host.totals.queries.*
|
Includes totals for all query metrics, including affected_rows , errors , latency , rows_examined , etc. |
dbo.host.totals.queries.latency.*
|
Count of queries whose latency was in this latency band. |
dbo.host.totals.queries.p99_latency_us
|
Total P99 latency for the selected dbo.host. 99% of query executions were faster than this latency. |
dbo.host.totals.queries.time_us
|
The total execution time of all queries which finished in a given second. |
dbo.host.totals.queries.tput
|
The number of queries which finished executing in a given second. |
dbo.host.users
|
Metrics by user across databases and tables: affected_rows, errors.<code> , errors.no_good_index , no_index , slow , time_us , and tput . Each of these are suffixed with .tput (except time_us and tput itself) as they are per-second derivative values. Comes from the protocol decoder.
|
dbo.host.verbs
|
Metrics by query verb (ALTER , SELECT , etc.), such as affected_rows , no_index , rows_examined , slow , etc.
This data is used by the Profiler to allow ranking of Query Verbs. |
MongoDB database metrics
Metric | Description |
---|---|
dbo.mongo.connpool
|
The number of open outgoing connections from the database instance. |
dbo.mongo.status.asserts
|
The number of assertions raised during the MongoDB process. |
dbo.mongo.status.background_flushing
|
The number of writes to disk during the MongoDB process. |
dbo.mongo.status.connections
|
The MongoDB connection(s) status. |
dbo.mongo.status.dur
|
The status of the MongoDB instance’s journaling-related operations and performance. |
dbo.mongo.status.extra_info
|
Additional information regarding the underlying system. |
dbo.mongo.status.global_lock
|
Reports on the database’s lock state. |
dbo.mongo.status.locks
|
For each lock <type> , data on lock <modes> . |
dbo.mongo.status.mem
|
MongoDB system architecture and current memory use. |
dbo.mongo.status.metrics
|
Various statistics that reflect the current use and state of a running mongod instance. |
dbo.mongo.status.network
|
MongoDB’s network usage. |
dbo.mongo.status.opcounters
|
Operations by type since the MongoDB instance last started. |
dbo.mongo.status.opcounters_repl
|
Database replication operations by type since the MongoDB instance last started. |
dbo.mongo.status.wired_tiger
|
Metrics about the Wired Tiger storage engine. |
MySQL database metrics
Metric | Description |
---|---|
dbo.mysql.innodb
|
InnoDB engine information, from selected portions of the return from SHOW ENGINE INNODB STATUS . For more information on SHOW ENGINE , see the MySQL 13.7.5.15 SHOW ENGINE Statement documentation. |
dbo.mysql.innodb.pending_reads
|
The number of InnoDB buffer pool pages waiting to be read in to the buffer pool. |
dbo.mysql.innodb.trx.state.active.count
|
The total count of InnoDB transactions in the |
dbo.mysql.innodb.trx.state.active.time_us
|
The total time InnoDB transactions in the |
dbo.mysql.innodb.trx.state.acitve.idle.count
|
The total count of InnoDB transactions in the |
dbo.mysql.innodb.trx.state.acitve.idle.time_us
|
The total time InnoDB transactions were in the |
dbo.mysql.innodb.trx.state.notstarted.count
|
The total count of InnoDB transactions in the |
dbo.mysql.innodb.trx.state.prepared.count
|
The total count of InnoDB transactions in the |
dbo.mysql.innodb.trx.state.prepared.time_us
|
The total time InnoDB transactions were in the |
dbo.mysql.processlist
|
Process information from performance_schema.threads , INFORMATION_SCHEMA.processlist , or SHOW PROCESSLIST , in that order, depending on which process is available to query. See 13.7.5.29 SHOW PROCESSLIST Statement in the MySQL documentation for more information about each child under dbo.mysql.processlist, such as callers, command, and query. |
dbo.mysql.processlist.callers.count
|
The total count of processlist query threads grouped by client IP addresses. |
dbo.mysql.processlist.callers.time_us
|
The total time for processlist threads grouped by client IP addresses. |
dbo.mysql.processlist.query.count
|
Total count for all processlist query threads grouped by query. |
dbo.mysql.processlist.query.time_us
|
Total time for all processlist query threads grouped by query. |
dbo.mysql.processlist.state.count |
Total count for all processlist query threads grouped by state. |
dbo.mysql.processlist.state.time_us
|
Total time for all processlist query thread grouped by state. |
dbo.mysql.processlist.users.count
|
Total count for all processlist query threads grouped by user. |
dbo.mysql.processlist.users.time_us
|
Total time for all processlist query threads grouped by user. |
dbo.mysql.status
|
Metrics built from MySQL’s server status variables, retrieved from SHOW GLOBAL STATUS . For more information about each variable, see 5.1.9 Server Status Variables
in the MySQL documentation. |
dbo.mysql.status.binlog_
|
Binlog statistics from SHOW STATUS .
|
dbo.mysql.status.com_
|
The number of times each statement type has been executed. There is one status variable for each type of statement. For example, com_delete and com_update count DELETE and UPDATE statements, respectively.
|
dbo.mysql.status.com_stmt_
|
These metrics are for prepared statement commands. Their names refer to the COM_xxx command set used in the network layer. |
dbo.mysql.status.connection_errors_
|
These metrics provide information about errors that occur during the client connection process. They represent error counts aggregated across all connections. For more information on each error, see the MySQL documentation. |
dbo.mysql.status.created_tmp_
|
Metrics about MySQL’s use of temporary files and tables. If created_tmp_disk_tables is large, you may want to increase the tmp_table_size or max_heap_table_size value to lessen the likelihood that internal temporary tables in memory will be converted to on-disk tables. You can compare the number of internal on-disk temporary tables created to the total number of internal temporary tables created by comparing the values of the created_tmp_disk_tables and created_tmp_tables variables. |
dbo.mysql.status.handler_read_
|
Data about how MySQL is reading data from tables. Large numbers of handler_read_rnd and handler_read_rnd_next indicates your tables are poorly indexed or queries are not written to use the indexes you have.
|
dbo.mysql.status.innodb_adaptive_hash_
|
Activity against the adaptive hash index. A high number of searches and activity usually indicates the index is effective. |
dbo.mysql.status.innodb_row_lock_
|
InnoDB row lock information, including average and total wait time, the number of row locks being waited for, and the number of total operations which waited for a lock. |
dbo.mysql.status.performance_schema_lost
|
These variables provide information about instrumentation that could not be loaded or created due to memory constraints. |
dbo.mysql.status.select_*
|
How MySQL performed SELECT statements. If select_full_join and select_range_check are not 0, you should carefully check the indexes of your tables. select_range is normally not a critical issue even if the value is large.
|
dbo.mysql.status.sort_*
|
Indicates the number of times a query executed using each sort type. For example sort_merge_passes indicates the number of merge passes that the sort algorithm has had to do.
|
dbo.mysql.status.ssl_*
|
Indicates the number of SSL-related events that have occurred. For example, ssl_accepts indicates the number of accepted SSL connections. |
dbo.mysql.status.table_open_*
|
Hits and misses of table cache lookups. Overflows is the number of times, after a table is opened or closed, a cache instance has an unused entry and the size of the instance is larger than table_open_cache / table_open_cache_instances .
|
dbo.mysql.tables
|
Metrics about the non-temporary tables that are open in the table cache, provided by SHOW OPEN TABLES . |
SQL Server database metrics
Metric | Description |
---|---|
dbo.mssql.perf_counters.memory_broker_clerks.*
|
Provides metrics for statistics related to memory broker clerks. For more information, see SQL Server, Memory Broker Clerks object in the Microsoft documentation. |
dbo.mssql.perf_counters.memory_node.*
|
Provides metrics to monitor server memory usage on NUMA nodes. For more information, see SQL Server, Memory Node object in the Microsoft documentation. |
dbo.mssql.perf_counters.databases.*
|
Provides metrics to monitor bulk copy operations, backup and restore throughput, and transaction log activities. For more information, see SQL Server, Databases object in the Microsoft documentation. |
dbo.mssql.perf_counters.general_statistics.*
|
Provides metrics to monitor general server-wide activity, such as the number of current connections and the number of users connecting and disconnecting per second from computers running an instance of SQL Server. For more information, see SQL Server, General Statistics object in the Microsoft documentation. |
dbo.mssql.perf_counters.transactions.*
|
Provides metrics to monitor the number of transactions active in an instance of the Database Engine, and the effects of those transactions on resources such as the snapshot isolation row version store in tempdb. For more information, see SQL Server, Transactions object. |
dbo.mssql.perf_counters.wait_statistics.*
|
Provides metrics that report information about broad categorizations of waits. For more information, see SQL Server, Wait Statistics object in the Microsoft documentation. |
dbo.mssql.processlist.*
|
Information regarding query-family specific execution information, which comes from dm_exec_requests , dm_exec_connections , and dm_exec_sessions . |
dbo.mssql.waiting_tasks.*
|
Aggregated metrics about all the waits encountered by threads that executed. For more information, see sys.dm_os_wait_stats (Transact-SQL) in the Microsoft documentation. |
dbo.mssql.status.*
|
Metrics covering a miscellaneous set of useful information about the computer, and about the resources available to and consumed by SQL Server. For more information, see sys.dm_os_sys_info (Transact-SQL) in the Microsoft documentation. |
PostgreSQL metrics
Metric | Description |
---|---|
dbo.pgsql.locks
|
Metrics for each PostgreSQL locktype , grouped by held or awaited . This data comes from the pg_locks table. For more information, see 47.59.pg_locks in the PostgreSQL documentation. |
dbo.pgsql.processlist.state
|
count and time_us for each PostgreSQL state . This data comes from pg_stat_activity . For more information, see The Statistics Collector in the PostgreSQL documentation.
|
dbo.pgsql.processlist.users
|
count and time_us by user. This data comes from pg_stat_activity .For more information, see The Statistics Collector in the PostgreSQL documentation.
|
dbo.pgsql.processlist.query
|
count and time_us by query ID. This data comes from pg_stat_activity . For more information, see The Statistics Collector in the PostgreSQL documentation.
|
dbo.pgsql.status.blk_read_time_us
|
Time spent reading data file blocks by backends, in microseconds. |
dbo.pgsql.status.blk_write_time_us
|
Time spent writing data file blocks by backends, in microseconds. |
dbo.pgsql.status.blks_hit
|
The number of times disk blocks were found already in the buffer cache, so that a read was not necessary (this only includes hits in the PostgreSQL buffer cache, not the operating system’s file system cache). |
dbo.pgsql.status.blks_read
|
The number of blocks read from disk. |
dbo.pgsql.status.buffers_alloc
|
The number of buffers allocated. |
dbo.pgsql.status.buffers_backend
|
The number of buffers written directly by a backend. |
dbo.pgsql.status.buffers_backend_fsync
|
The number of times a backend had to execute its own fsync call (normally the background writer handles those even when the backend does its own write). |
dbo.pgsql.status.buffers_checkpoint
|
The number of buffers written during checkpoints. |
dbo.pgsql.status.buffers_clean
|
The number of buffers written by the background writer. |
dbo.pgsql.status.checkpoint_sync_time
|
The total amount of time that has been spent in the portion of checkpoint processing where files are synchronized to disk, in milliseconds. |
dbo.pgsql.status.checkpoint_write_time
|
The total amount of time that has been spent in the portion of checkpoint processing where files are written to disk, in milliseconds. |
dbo.pgsql.status.checkpoints_req
|
The number of requested checkpoints that have been performed. |
dbo.pgsql.status.checkpoints_timed
|
The number of scheduled checkpoints that have been performed. |
dbo.pgsql.status.conflicts
|
The number of queries canceled due to conflicts with recovery in this database. |
dbo.pgsql.status.numbackends
|
The number of backends currently connected. |
dbo.pgsql.status.replication_delay_us
|
Replication delay, in microseconds. |
dbo.pgsql.status.temp_bytes
|
The total amount of data written to temporary files by queries. All temporary files are counted, regardless of why the temporary file was created, and regardless of the log_temp_files setting. |
dbo.pgsql.status.temp_files
|
The number of temporary files created by queries. All temporary files are counted, regardless of why the temporary file was created (e.g., sorting or hashing), and regardless of the log_temp_files setting. |
dbo.pgsql.status.tup_deleted
|
The number of rows deleted by queries. |
dbo.pgsql.status.tup_fetched
|
The number of rows fetched by queries. |
dbo.pgsql.status.tup_inserted
|
The number of rows inserted by queries. |
dbo.pgsql.status.tup_returned
|
The number of rows returned by queries. |
dbo.pgsql.status.tup_updated
|
The number of rows updated by queries. |
dbo.pgsql.status.xact_commit
|
The number of transactions that have been committed. |
dbo.pgsql.status.xact_rollback
|
The number of transactions that have been rolled back. |
dbo.pgsql.totals
|
count and time_us totals for state, users, and query. |
Redis metrics
Metric | Description |
---|---|
dbo.redis.status.aof_delayed_fsync
|
Delayed fsync counter. |
dbo.redis.status.aof_enabled
|
Flag indicating AOF logging is activated. |
dbo.redis.status.aof_pending_bio_fsync
|
The number of fsync pending jobs in background I/O queue. |
dbo.redis.status.aof_pending_rewrite
|
Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete. |
dbo.redis.status.aof_rewrite_in_progress
|
Flag indicating a AOF rewrite operation is on-going. |
dbo.redis.status.aof_rewrite_scheduled
|
Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete. |
dbo.redis.status.blocked_clients
|
The number of clients pending on a blocking call (BLPOP , BRPOP , BRPOPLPUSH ). |
dbo.redis.status.client_biggest_input_buf
|
The biggest input buffer among current client connections. |
dbo.redis.status.client_longest_output_list
|
The longest output list among current client connections. |
dbo.redis.status.cluster_enabled
|
Indicates Redis cluster is enabled. |
dbo.redis.status.connected_clients
|
The number of client connections (excluding connections from replicas). |
dbo.redis.status.connected_slaves
|
The number of connected replicas. |
dbo.redis.status.evicted_keys
|
The number of evicted keys due to maxmemory limit. |
dbo.redis.status.expired_keys
|
The total number of key expiration events. |
dbo.redis.status.instantaneous_ops_per_sec
|
The number of commands processed per second. |
dbo.redis.status.keyspace_hits
|
The number of successful lookup of keys in the main dictionary. |
dbo.redis.status.keyspace_misses
|
The number of failed lookup of keys in the main dictionary. |
dbo.redis.status.latest_fork_usec
|
The duration of the latest fork operation in microseconds. |
dbo.redis.status.loading_start_time
|
Epoch-based timestamp of the start of the load operation. |
dbo.redis.status.loading
|
Flag indicating if the load of a dump file is on-going. |
dbo.redis.status.loading_loaded_perc
|
Flag indicating if the load of a dump file is on-going (as a percentage). |
dbo.redis.status.mem_fragmentation_ratio
|
Ratio between used_memory_rss and used_memory . |
dbo.redis.status.pubsub_channels
|
Global number of pub/sub channels with client subscriptions. |
dbo.redis.status.pubsub_patterns
|
Global number of pub/sub pattern with client subscriptions. |
dbo.redis.status.rdb_bgsave_in_progress
|
Flag indicating a RDB save is on-going. |
dbo.redis.status.rdb_changes_since_last_save
|
The number of changes since the last dump. |
dbo.redis.status.rejected_connections
|
The number of connections rejected because of maxclients limit. |
dbo.redis.status.repl_backlog_active
|
Flag indicating replication backlog is active. |
dbo.redis.status.total_commands_processed
|
The total number of commands processed by the server. |
dbo.redis.status.total_connections_received
|
The total number of connections accepted by the server. |
dbo.redis.status.uptime_in_seconds
|
The number of seconds since the Redis server started. |
dbo.redis.status.used_cpu_sys_children
|
System CPU consumed by the background processes. |
dbo.redis.status.used_cpu_sys
|
System CPU consumed by the Redis server. |
dbo.redis.status.used_cpu_user_children
|
User CPU consumed by the background processes. |
dbo.redis.status.used_cpu_user
|
User CPU consumed by the Redis server. |
dbo.redis.status.used_memory_lua
|
Number of bytes used by the Lua engine. |
dbo.redis.status.used_memory_peak
|
Peak memory consumed by Redis (in bytes)/ |
dbo.redis.status.used_memory_rss
|
The number of bytes that Redis allocated as seen by the operating system. |
dbo.redis.status.used_memory
|
The total number of bytes allocated by Redis using its allocator. |
Related entities metrics
When a Database Instance is monitored, metrics from the related host entity are often collected at the same time. The following host metrics are often reported alongside Database Instance entities in SolarWinds Observability explorers. See Self-managed host metrics for information about these metrics.
system.cpu.utilization
(CPU Utilization)system.disk.io
(Disk Throughput)system.memory.usage
(Memory Utilization)system.network.io
(Network Throughput)