Documentation forSolarWinds Observability

Database configuration files

This topic lists the global and agent-specific configuration files used to configure specific options with SolarWinds Observability database monitoring. The following sections are presented.

Global and Agent configuration files

On each Database host monitored within SolarWinds Observability, Agent reads two configuration files, in order (global settings are overridden by the agent-specific file; command-line options override both).

  • /etc/solarwinds/dbo-global.conf

  • /etc/solarwinds/<agent-name>.conf

The Agent configuration file, /etc/solarwinds/<agent-name>.conf, overrides the global database configuration file.

Agent configuration files for database types

If a parameter is seen by the Agent that is not applicable to a configuration file listed below, that parameter is skipped by default.

Some configuration files are specific to the database type for on host or off host monitoring, and can apply to all metrics for that database.

The configuration file types listed in the table below apply to the Agent configuration file for your specific database type. These configuration files can be used for both on host and off host database monitoring.

Database Configuration file Applies to
dbo-mysql-metrics.conf Applies to all mysql metrics agents on the Agent host.
dbo-mongo-metrics.conf Applies to all mongo metrics agents on the Agent host.
dbo-pgsql-metrics.conf Applies to all pgsql metrics agents on the Agent host.
dbo-mssql-metrics.conf Applies to all mssql metrics agents on the Agent host.
dbo-redis-metrics.conf Applies to all redis metrics agents on the Agent host.

The following database configuration files should only be used for on host deployments with query capture or the sniffer agent enabled.

  • dbo-mysql-query.conf

  • dbo-mongo-query.conf

  • dbo-pgsql-query.conf

  • dbo-redis-query.conf

Global configuration file options

Place all of the configuration options in the /etc/solarwinds/dbo-global.conf configuration file, which is read by all Agent.

Host and tag configuration options

Global configuration option Description
enable-query-tags Set this option to true to parse query tags and associate query digests with them, and filter by tag in the Profiler (see only query families with a specific tag).
tags-sync-mode Controls how AWS tags interact with any SolarWinds Observability host tags. Can be set to merge and mirror. Merge will add the AWS tags to any other tags you add to a host. Mirror will overwrite any other SolarWinds Observability tags so that the host has the same tags in SolarWinds Observability and AWS.

Resource utilization configuration options

Global configuration option Description
capture-buflen Sets the size of the buffer for storing packet data when they are being received faster than they can be processed. The default is set to 8 MB. If a host is dropping packets this should be set to at least 32 MB. Setting this configuration to more than 160 MB does not usually bring additional benefit. If the packet loss is particularly variable from moment to moment increasing this value sometimes resolves packet loss.
capture-mode Sets how the query agent should process packets. The default is set to sync; it is the most efficient but does not allow the agent to use multiple cores. Other values are async, which decodes packets in different threads, and auto, which lets the agent determine what to use on a per request basis. Depending on query workload you will need to test the performance of async vs. auto when changing num-procs.
num-procs Sets the maximum number of processor cores the agent can use to mitigate packet loss in the query agent (swi-mysql-query) when using TCP monitoring. The default is set to 1. Start by testing with 2, then 3 if necessary. When changing num-procs you must also change capture-mode.

Event configuration options

Global configuration option Description
long-running-event-threshold Enables the creation of events for long-running queries and configures the threshold, in seconds. The default is set to 0, which turns the feature off. This configuration is expressed as time and units; for example, 60s. This environment setting can be overridden with a configuration file on a specific host, if that host should have a different threshold.
max-db-conns-threshold Sets the threshold for generating the DB connections warning alert. The defaults value is set to 95, meaning 95 percent of the maximum number of connections are in use.
pg-vacuum-events Comma-separated list of level:duration, where a vacuum lasting more than duration will trigger an event, for example, info:1m,warn:30m,crit:60m. This environment setting can be overridden with a configuration file on a specific host, if that host should have a different threshold.

Metric and other data collection configuration options

Global configuration options Description
digest-metrics Controls whether to digest numbers in database and table size metrics. For example, when this value is set to true, table_1 and table_2 would both become table_? for the purpose of table size metrics. Can be set to false.
enable-plist-lock-detector Configures whether or not to try to detect queries waiting on a lock and queries holding a lock other threads desire. The default is set to true. Disabling can improve performance, and the query is automatically disabled if too many long-running threads are detected.
enable-table-sizes Indicates whether to fetch database and table size information (data size, index size, total size, number of rows). The defaults value is set to true, and can be set to false. If this is set to true but the agent does not appear to be fetching table size data, restart the agent and check that the database does not exceed the 50,000 table maximum or that time-abort/time-size-abort was triggered.
max-subbatch-size Sets the maximum number of databases and tables to fetch size information for at one time. Helps to keep the execution cost of the query low. The default is set to 50. See also top-table-limit and top-schema-limit.
processlist-query For MySQL databases only. Specify which query to use to fetch running processlist information. The default is set to auto which lets the metrics agent choose the least expensive option available for fetching this information. performance_schema.threads is the most efficient; then the agent will try information_schema.processlist and then SHOW PROCESSLIST. Options are performance_schema, information_schema, or processlist in addition to auto.
repl-heartbeat-ttl For MySQL databases only. The maximum age for a heartbeat row, after which it is considered invalid. The default is 300 seconds. After this time the replica database simply ignores the row.
repl-heartbeat For MySQL databases only. Indicates whether to fetch replication delay information using a heartbeat table instead of database-provided functions such as SHOW SLAVE STATUS. The table must exist on both the primary and the secondary. The agent must have SELECT, INSERT, and UPDATE privileges on the table specified by repl-heartbeat-table. The default is set to false, but this can be set to true.
schema-blacklist Comma separated list of schema names to blacklist and not fetch database size metrics.
show-status Configures whether to run MySQL database's show-status to collect data. The default is set to true. Set this option to false to see if show-status causes database performance issues (typically the result of a known bug in MySQL). Setting this to false is rare and non-query data collection is severely limited when this is enabled.
tag-delimiters Sets the characters used to identify and parse query tags in query comments into key/value pairs. The value is two characters; the first identifies what separates a key from a value, and the second separates pairs. The default value is equals (=) then a space (), meaning that it expects tags to look like foo=bar baz=xyzzy.
time-abort For MySQL databases only. Sets the maximum latency of our query to fetch database and table sizes before the feature is automatically disabled. The defaults is set to 3s (seconds). You must include the s (seconds). Note that if the query times out the agent will disable the feature and not try to enable it again until the agent is restarted. For a number of clients 3 seconds is too low because a single slow execution, even if the query is otherwise performant, will disable the data.
time-size-abort For databases other than MySQL. Sets the maximum latency of our query to fetch database and table sizes before the feature is automatically disabled. The defaults is set to 3s (seconds). You must include the s (seconds). Note that if the query times out the agent will disable the feature and not try to enable it again until the agent is restarted. For a number of clients 3 seconds is too low because a single slow execution, even if the query is otherwise performant, will disable the data.
top-schema-limit Sets the maximum number of databases for which to fetch size data. Databases ranked below the values (based on size) will be grouped into an Others row. Default is 50. Larger values may have performance implications. See also top-table-limit.
top-table-limit Sets the maximum number of tables for which to fetch size data. Tables ranked below the values (based on size) will be grouped into an Others row. The default is set to 50. Larger values may have performance implications. See also top-schema-limit.
track-offhost-prep-stmt For MySQL databases only. Instructs the agent to track prepared statement queries when monitoring MySQL in off-host mode. This is done by querying the performance_schema.prepared_statements_instances table, which is available in MySQL v5.7 and newer. Th default is to disabled. Note: MySQL only stores information on active prepared statements, so enabling this option may not help for workloads that have many short-lived prepared queries.

Digest configuration options

Global configuration option Description
digest-tags Specifies whether to digest query tags. The default is set to no. Can also be set to both, name, or value.
force-offhost-digests Configures the MySQL metrics agent to attempt to turn on the statements_digest consumer, for an off-host installation, if it is disabled. Options are true and false. The default is set to false. Using this feature requires the agent’s user to have the UPDATE privilege on performance_schema.setup_consumers.
max-digest-length Controls the maximum length of characters to examine before truncation. The default is set to 2046, the maximum value is 32000. Smaller values will group long queries together which only differ at the end of the query; larger values will create more digests. Note that for off-host installations, enlarging this value will have no effect if the digest is truncated by the database before SolarWinds Observability collection.
max-prep-stmts Controls the maximum number of prepared statements per connection to track. The default is set to 500. When an execute is sent for a prepared statement, we will associate the data (latency, count, etc.) with the appropriate prepared statement assuming we saw the prior prepare. This option controls the number of prepared statements we will remember in this manner, per connection. This option is only relevant for MySQL and PostgreSQL installations monitoring with packet sniffing.
ps-others-tolerance The maximum percentage (expressed as a decimal) of queries being caught by the events_statements_summary_by_digest others row before triggering an event. The default is set to 0.5, but generally you do not want any queries caught by the others row. See the metric performance_schema_digest_lost for a count of the number of lost digests per second, and the dbo.agents.dbo_mysql_metrics.rds.others_ratio for the current others percentage.
ps-truncate-events-summary Whether or not to have the agent truncate performance_schema.events_statements_summary_by_digest when it is putting too many digests into the others row. Defaults to false and can be set to true. When enabled, the agent needs the DROP privilege on performance_schema.events_statements_summary_by_digest. The threshold for truncation is set by ps-others-tolerance. For example, setting ps-others-tolerance to 0.1 means the agent will truncate the table when 10% of queries are attributed to the others row. You can monitor when agent truncation events occur with the dbo.agents.dbo_mysql_metrics.rds.events_truncated metric.
truncate-digests-length For PostgreSQL databases off host. After digestion has already taken place for both query digests from pg_stat_statements and samples from pg_stat_activity truncate the resulting digest down to this length. This is to make the digested version from both sources match. Without using this option, they are more or less guaranteed to not match if the query is longer than max-digest-length. Set to some value smaller than max-digest-length.

Sample configuration options

Global configuration option Description
disable-sampling-text Disables collection of raw query text, as well as removes possibly-sensitive portions of execution plans, but still captures most execution plan information as well as execution metadata ( latency, connection ID, etc.) when set to true. The default is set to false.
disable-sampling Disables sample collection entirely for a host when set to true. The default is set to false. This eliminates collection of all aspects of query samples: metadata, execution plans, and raw query text. Setting this to true overrides any other sample collection option.
dyn-sample-text When set to true allows the agent to begin collecting query samples when otherwise disabled without requiring an agent restart. This does not enable collection, it only enables the possibility of dynamically enabling and disabling collection via the Inventory page.
enable-explains Enables the capture of execution plans when set to true. The default is set to true, but this can also be set to false. Changing this value is rare.
force-offhost-samples Configures the MySQL metrics agent to attempt to turn on events_statements_history_long, for an off-host installation, if it is disabled. Options are true and false. The default is set to false. Using this feature requires the agent’s user to have the UPDATE privilege on performance_schema.setup_consumers. See also force-offhost-digests.
max-execute-payload Maximum size (number of bytes) of a prepared statement that we will try to reconstruct into a query sample using values seen during an execute. Statements longer than this maximum will have their sample replaced with a "max size exceeded" message. Raising this will reconstruct longer statements at the cost of CPU time. Only applicable to MySQL and PostgreSQL databases which use the on-host (network sniffing) installation type.
max-sample-length Controls the maximum length of raw query text in samples. The default is 4096, and the maximum is 32000. Note that for off-host installations, enlarging this value will have no effect if the sample is truncated by the database before SolarWinds Observability collection.
max-sample-slots When determining what queries to sample we keep track of the last time each query has been seen. We keep track of the last time we’ve seen any query in a group of queries. The number of groups is given by max-sample-slots. The default is set to 7500. Each group consumes 40 bytes. If this value is too small, queries which run infrequently may not be sampled due to hash collisions with more frequent queries which update the last seen data.
query-blacklist-pattern A regular expression which describes the queries to not sample. All queries which do not match the blacklist will be sampled. Do not also enable disable-sampling or disable-sampling-textbecause those options supercede this one. See also query-whitelist-pattern.
query-comment-pattern A regular expression which describes the query comments to keep. This option discards query text and only keeps query comments which match the expression. The default is blank (keep all query text and all comments). Typical use is to specify * which will discard query text and keep all comments. (This is not a valid regular expression but it is handled appropriately.)
query-whitelist-pattern A regular expression which describes the queries to sample. All queries which do not match the whitelist will not be sampled. Do not also enable disable-sampling or disable-sampling-textbecause those options supercede this one. See also query-blacklist-pattern.

Common database configuration options

There are common configuration options for all database types for the metric Agent and the query Agent.

Common metric agent configuration file options

Configuration Option Description
credentials-file JSON DB credentials file. If present, agent will use it instead of API. Supported placeholders: %h host number, %t host type.
digest-protect-regexp When digesting, protect literals that match the regexp.
disable-sampling Do not send samples of queries.
disable-sampling-text Disable sending query text with samples.
dyn-sample-text Allow dynamically enabling full query sampling when instructed by supervisor.
event-resend-period Duration to wait between resending common events.
fault-duration How long to gather extra data when there is a fault.
fault-interlude How long after a fault before triggering another.
fetch-config Fetch configuration from, and report it to, the API.
ipc-dir The directory to use for communicating with("metrics") or ("query") agent.
log-dir Directory where this program will write its log (for --log-type=file).
log-max-backups Max. number of logs to keep (0=infinite).
log-max-size Max. size (in MB) for the log; zero to disable rotation.
log-type Output type for logging (file|syslog|stderr).
max-digest-length Max length of query text to be digested (-1=infinite).
max-query-slots Max number of families to simultaneously track.
override-os-certs Use embedded CA certificates instead of the ones supplied by the OS.
profiling runtime/pprof profiling: <type>/<interval>, e.g. cpu/30s.
proxy-uri The URI for a HTTP, HTTPS, or SOCKS5 proxy.
query-blacklist-pattern Regular expression describing the queries that should not be sampled. If not specified defaults to no queries. Operates independently of query-whitelist-pattern.
query-comment-pattern Whether samples should be restricted to query comments: `` No, `*` Yes, `...` regexp describing desired part of comment.
query-obfuscation Obfuscate SQL: %d=raw, %d=digest, %d=checksum" 1 -> ObfuscateRaw 2 -> ObfuscateDigest 3 -> ObfuscateChecksum.
query-whitelist-pattern Regular expression describing the queries that should be sampled. If not specified defaults to all queries. Operates independently of query-blacklist-pattern.
sample-text-whitelist A comma-separated list of query IDs to allow sample text for. Only applied if disable-sampling-text is set.
security-gateway Security Gateway URI.
skip-certs Make TLS accept any certificate presented by the server and any host name in that certificate.
storage-dir The directory to use for saving agent's state.
strip-columns-regexp When digesting, strip columns from INSERT/SELECT/UPDATE when query matches regexp.
strip-columns-regexp-insert When digesting, strip columns from INSERT when query matches regexp.
strip-columns-regexp-select When digesting, strip columns from SELECT when query matches regexp.
strip-columns-regexp-update When digesting, strip columns from UPDATE when query matches regexp.
tags-sync-mode Tags synchronization mode: 'merge' to apply tags additively, or 'mirror' to force the exact provided set.
top-schema-limit Top-N limit for database/schema/keyspace size metrics.
top-table-limit Top-N limit for table/collection/column/index size metrics.

Common query agent configuration file options

Configuration Option Description
autolimit-digest-rate Automatically set digest levels to limit digest rate.
block-fanout If set, don't let the fanout task drop query events when the downstream channel is full.
capture-buflen Buffer size, in bytes, for the packet sniffer.
capture-device device to listen on; 'any' will listen on all in Linux.
capture-mode Mode to use in TCP sniffer: AUTO, ASYNC or SYNC.
capture-snaplen Maximum snapshot length to capture.
capture-subsampling Capture one connection in 2**n. Default 2**0 = 1, so all connections.
capture-timeout Maximum time to wait before emptying capture buffer.
debug-queries csv list of query ids to debug.
default-pcap-helper Use this if pcap-helper is not set.
digest-pfx-collapse List of comma separated prefixes that trigger aggresive digesting of the rest of the identifier.
digest-queue-size The number of query digests to queue for sending to the api at a time. If more queries than this are seen in a second they will be discarded, and we will try to send the digest the next time we see the query.
disable-sampling Do not take full-text samples of queries.
dump-file Read from this tcpdump file.
dyn-sample-text Allow dynamically enabling full query sampling when instructed by supervisor.
enable-audit-first-filter Enable the audit-first query sample filter.
fetch-config Fetch configuration from, and report it to, the API.
ipc-dir The directory to use for communicating with ("metrics") or ("query") agent".
lock-dir Directory where this program will write its lock file.
log-dir Directory where this program will write its log (for --log-type=file).
log-max-backups Max. number of logs to keep (0=infinite).
log-max-size Max. size (in MB) for the log; zero to disable rotation.
log-type Output type for logging (file|syslog|stderr).
max-conn Track at most this many connections.
max-digest-length Max length of query text to be digested (-1=infinite).
max-query-slots Max number of query digests to remember.
metrics-agent-name Metrics agent name, used for IPC (->querysamples, <-conndata).
num-procs set runtime.GOMAXPROCS.
override-os-certs Use embedded CA certificates instead of the ones supplied by the OS.
pcap-helper Fully qualified filename of the pcap helper binary for unprivileged operation.
profiling runtime/pprof profiling: <type>/<interval>, e.g. cpu/30s.
proxy-uri The URI for a HTTP, HTTPS or SOCKS5 proxy.
query-audit-pattern Regular expression describing the queries that should be audited. Queries that match this pattern will be sampled at the first occurrence.
query-blacklist-pattern Regular expression describing the queries that should not be sampled. If not specified defaults to no queries. Operates independently of query-whitelist-pattern.
query-log-buffer-size Buffer size, in bytes, for the query log.
query-obfuscation Obfuscate SQL: %d=raw, %d=digest, %d=checksum" 1 -> ObfuscateRaw 2 -> ObfuscateDigest 3 -> ObfuscateChecksum.
query-whitelist-pattern Regular expression describing the queries that should be sampled. If not specified defaults to all queries. Operates independently of query-blacklist-pattern.
skip-certs Make TLS accept any certificate presented by the server and any host name in that certificate.
storage-dir The directory to use for saving agent's state.
stream-length-limit Max. number of packets to track per stream per connection. (To cap memory/gc)
subsample-scaling Adjust stats to subsampling frequency.
support-ipv6 Enable support for capturing IPv6 packets.
tag-with-conn-id-level Tag each query with its connection id.
vlan-id The first VLAN header should match this id.
vlan-level Support this many VLAN tags in a packet.

Configuration options for MongoDB

There are configuration options for the MongoDB metric Agent and the query Agent.

MongoDB metric agent configuration file options

The following configuration options are available in the dbo-mongo-metrics.conf configuration file.

Configuration option Description
digest-sort What to sort: polite sorts highly variable fields of insert/update, and aggresive sorts all fields of find/insert/update.
digest-strip What to digest down to: polite strips 2nd level of highly variable fields of insert/update, and aggressive strips all levels.
digest-tags UNUSED - // compatibility with other DB agents
disable-pileup-detector Disables pile-up fault detector.
enable-cluster Aggregate metrics from Replica Set nodes to a virtual host.
enable-explains Enables explain() of sample queries.
enable-processlist Enables polling for currently running queries.
enable-replset Enables tracking of replica set status, including state and delay.
enable-tablesize Enables polling for table and index sizes.
get-databases-int Time to wait between updates to the list of tracked databases.
get-table-data-per-int Max number of table data updates per interval.
get-tables-int Time to wait between updates to the list of tracked tables.
get-tables-per-int Max number of database table list updates per interval.
long-running-event-threshold The threshold time for triggering events on long running queries. Defaults to 0 which means disabled.
max-db-conns-threshold Percent threshold for db connections event detector. Defaults to 95.
profiler-allow-dbs List of comma separated database names to monitor when polling profile, excluding all others. Disables profiler-block-dbs.
profiler-block-dbs List of comma separated database names to ignore when polling profile.
send-faults Sends events to the API when we detect a new fault.
time-size-abort Max execution time for an individual query before aborting polling for size metrics
update-variables How frequently to capture update variables in seconds.

MongoDB query agent configuration file options

Configuration option Description
digest-sort What to sort: polite sorts highly variable fields of insert/update, and aggresive sorts all field of find/insert/update.
digest-strip What to digest down to: polite strips 2nd level of highly variable fields of insert/update, and aggressive strips all levels.
digest-tags Whether to digest tag components.
rtime-warn If response time is higher than rtime-warn, logs extra debug.
slow-query-time If response time is higher than slow-query-time, flag query as Slow. Note that this value will be updated to MongoDB's slowOpThresholdMs once a connection is established.

Configuration options for MySQL

There are configuration options for the MySQL metric Agent and the query Agent.

MySQL metric agent configuration file options

The following configuration options are available in the dbo-mysql-metrics.conf configuration file.

Configuration option Description
allow-explain-subquery Allows EXPLAINs of sample queries containing subqueries.
cache-clear-cycles Number of cycles before clearing cache of schemas associated with a table name.
collapse-select-tables When digesting, collapses tables referenced in SELECT statements [SELECT..FROM].
collapse-tables-regexp-select When digesting, collapses tables from SELECT when query matches regexp.
collapse-where-cond-regexp When digesting, collapse the conditions referenced in the WHERE clause when query matches regexp
collapse-where-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
custom-dsn-attributes Pipe separated list of DSN attributes to add/override as attr=value.
digest-flag-triggers A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option.
digest-tags Whether to digest tag components.
disable-pileup-detector Disables pile-up fault detector.
enable-apm-dbo-trace For MySQL off host installations. Set this option to true to enable the to parse traces. Note if you already have perf-schema-method : events_statements_history_long enabled in the configuration file, you do not need to set enable-apm-dbo-traces to true in the dbo-mysql-metric.conf file.
enable-explains Enables EXPLAINs of sample queries.
enable-mutex-metrics Enables mutex metrics for wait/synch/mutex/ instruments.
enable-perf-schema Off-host mode, using PERFORMANCE_SCHEMA
enable-plist-lock-detector Enables processlist metrics about queries belonging to a transaction that is blocking others.
enable-plist-waits-detector Enables processlist metrics about query wait stats.
enable-ps-alt-samples WILL BE REMOVED. Allow sampling from P_S.events_statements_history
enable-row-metrics Enables reading row access metrics from Information_schema.TABLE_STATISTICS.
enable-table-sizes Enables reading metrics from Information_schema.TABLES.
error-limit Maximum number of errors in a cycle before aborting size polling.
failover-min-uptime-increase Minimum number of seconds that uptime can increase until we detect a failover event. 0 disables detector.
force-offhost-digests In PS off-host mode, tries to enable the required consumer for Query Digests. WARNING: issues an UPDATE P_S.setup_consumers.
force-offhost-samples In PS off-host mode, tries to enable the required consumers for Query Samples. WARNING: issues an UPDATE P_S.setup_consumers.
long-running-event-threshold Time threshold for triggering events on long running queries. Defaults to 0 which means disabled.
max-db-conns Maximum number of concurrent DB connections.
max-db-conns-threshold Percent threshold for db connections event detector. Defaults to 95.
max-open-tables Max number of open tables. Above this number, the open tables tracking feature is disabled.
max-open-tables-leeway Deviation from max-open-tables that triggers turning the feature on-off (prevents intermittence)
max-schema-tags Maximum number of schema names to use as host tags. This is disabled if number of matching schemas exceeds this value.
max-subbatch-size Sets the maximum number of tables to query at once for table sizes.
perf-schema-method P_S method used for Query Metrics.
processlist-digest-obfuscation The digest obfuscation method used to prevent plaintext leaks from processlist: none no obfuscation, checksum only sends Query IDs, auto (default) uses heuristics to switch between none and checksum on a digest-by-digest basis.
processlist-query The query method for reading the MySQL Processlist: processlist (SHOW FULL PROCESSLIST), information_schema, performance_schema or disable. Use auto to let agent choose (default).
ps-others-tolerance Max fraction of unknown queries in PERFORMANCE_SCHEMA that doesn't trigger an event or TRUNCATE events_statements_summary_by_digest.
ps-sleep-time The time to sleep if the PERFORMANCE_SCHEMA query times are long.
ps-truncate-events-summary In PS off-host mode, TRUNCATE events_statements_summary_by_digest if the fraction of unknown queries is above ps-others-tolerance.
repl-heartbeat Measures replication delay once per second.
repl-heartbeat-table The database.table to measure replication delay.
repl-heartbeat-ttl The max age for a heartbeat row, after which it is considered invalid.
restart-min-uptime-decrease Minimum number of seconds that uptime can decrease until we detect a restart event. 0 disables detector.
schema-blacklist Comma separated list of schema names to avoid polling for size metrics.
show-innodb-status How frequently to capture SHOW INNODB STATUS.
show-open-tables How frequently to SHOW OPEN TABLES.
show-slave How frequently to capture SHOW SLAVE STATUS.
show-status Captures SHOW STATUS?.
show-variables How frequently to capture SHOW VARIABLES.
slow-log-source Off-host mode, using Slow Log. Options are local and aws. local will look up the local slow log path, aws will attempt to use RDS. If neither, slow log monitoring is disabled.
strip-case When digesting, removes CASE..END content.
strip-insert-columns When digesting, strips columns from INSERT.
strip-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
tgt-size-metrics-interval Sets the target refresh time for table/schema metrics. It won't be faster than what max-subbatch-size allows.
time-abort Maximum time for retrieval of size metrics before aborting. The default is 3 seconds. Example config time-abort:10s.
track-offhost-prep-stmt Tracks prepared statements in off-host mode.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
truncate-multi-statements When digesting, keeps only the first statement.

MySQL query agent configuration options

Configuration Option Description
ansi-quotes Use sql_mode = ANSI_QUOTES.
collapse-select-tables When digesting, collapses tables referenced in SELECT statements [SELECT..FROM].
collapse-tables-regexp-select When digesting, collapses tables from SELECT when query matches regexp.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp.
collapse-where-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
compression-support Supports mysql compressed protocol. Enabled by default.
digest-blacklist-pattern Regular expression describing the queries that should not be reported. Queries whose digest match the regular expression will not show up in the web interface, and will have no metrics reported.
digest-flag-triggers A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option.
digest-protect-regexp When digesting, protects literals that match the regexp.
digest-tags Whether to digest tag components.
max-execute-payload Maximum size of an executed prepared statement to sample.
max-prep-stmts Maximum number of prepared statements to keep track of per connection.
rtime-warn If response time is higher than rtime-warn, log extra debug.
send-sql-bytes Sends host.queries.**.sql_bytes debugging metric.
strip-case When digesting, removes CASE..END content.
strip-columns-regexp When digesting, strips columns from INSERT/SELECT/UPDATE when query matches regexp.
strip-columns-regexp-insert strip-columns-regexp-insert
strip-columns-regexp-select When digesting, strips columns from SELECT when query matches regexp.
strip-columns-regexp-update When digesting, strips columns from UPDATE when query matches regexp.
strip-insert-columns When digesting, strips columns from INSERT.
strip-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
truncate-multi-statements When digesting, keeps only the first statement.

Configuration options for PostgreSQL

There are configuration options for the PostgreSQL metric Agent and the query Agent.

PostgreSQL metric agent file configuration options

The following configuration options are available in the dbo-pgsql-metrics.conf configuration file.

Configuration option Description
digest-flag-triggers A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option.
disable-pileup-detector Disables pile-up fault detector.
enable-explains Enables EXPLAINs of sample queries.
enable-index-sizes Enables reading metrics on index sizes from pg_stat_user_indexes.
enable-plist-lock-detector Enables processlist metrics about queries belonging to a transaction that is blocking others.
enable-startup-check Checks for the existence of pg_stat_statements before monitoring queries. Ignored if enable-stat-stmts is false.
enable-stat-stmts Enables reading metrics from pg_stat_statements.
enable-table-sizes Enables reading metrics on schema and table sizes from pg_stat_user_tables.
errors-size-abort Number of errors before aborting polls for size metrics.
get-pg-stat-activity How frequently to poll pg_stat_activity.
get-pg-stat-bgwriter How frequently to poll pg_stat_bgwriter.
get-pg-stat-database How frequently to poll pg_stat_database.
get-table-interval Interval for retrieving table size data. Up to second-level precision.
long-running-event-threshold The threshold time for triggering events on long running queries. Defaults to 0 which means disabled.
max-schema-tags Maximum number of schema names to use as host tags. This feature is disabled if number of matching schemas exceeds this value.
optimization Optimize for %s, %s or %s (the later imposes extra load on PostgreSQL) Param 1 - OptimizeCPU Param 2 - OptimizeMemory Param 3 - OptimizeBoth.
pg-role Role that should be assumed by agent instead of checking pg_roles.
pg-vacuum-events Comma-separated list of level:duration, where a vacuum lasting more than duration will trigger an event. For example info:1m,warn:30m.
pgbouncer-force-metrics Fetches metrics of a node behind a PgBouncer.
show-variables How frequently to capture SHOW ALL settings.
slow-log-source Off-host mode, using Slow Log. Options are local and aws. local will look up the local slow log file path, aws will attempt to use the RDS log file path.
stat-stmts-sleep-time The time to sleep if the statements queries take too long.
time-size-abort Max execution time for an individual query before aborting polling for size metrics.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
truncate-digests-length Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited.

PostgreSQL query agent configuration files

Configuration option Description
collapse-select-tables When digesting, collapses tables referenced in SELECT statements [SELECT..FROM].
collapse-tables-regexp-select When digesting, collapses tables from SELECT when query matches regexp.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp.
collapse-where-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
digest-flag-triggers A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option.
digest-protect-regexp When digesting, protects literals that match the regexp.
digest-tags Whether to digest tag components.
max-execute-payload Maximum size of an executed prepared statement to sample.
max-prep-stmts Maximum number of prepared statements to keep track of per connection.
rtime-warn If response time is higher than rtime-warn, logs extra debug.
send-sql-bytes Sends host.queries.**.sql_bytes debugging metric.
slow-query-time If response time is higher than slow-query-time, flags query as Slow. Note that this value will be updated to Postgres' log_min_duration_statement (when greater than zero) once a connection is established
strip-case When digesting, removes CASE..END content.
strip-columns-regexp When digesting, strips columns from INSERT/SELECT/UPDATE when query matches regexp.
strip-columns-regexp-insert When digesting, strips columns from INSERT when query matches regexp.
strip-columns-regexp-select When digesting, strips columns from SELECT when query matches regexp.
strip-columns-regexp-update When digesting, strips columns from UPDATE when query matches regexp.
strip-insert-columns When digesting, strips columns from INSERT.
strip-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.

Configuration options for SQL Server

There are configuration options for the SQL Server metric Agent.

SQL Server metric agent file configuration options

The following configuration options are available in the dbo-mssql-metrics.conf configuration file.

Configuration option Description
deadlocks-session-memory The amount of memory (KB) to allocate to the session for event buffering.
digest-flag-triggers A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option.
get-deadlocks-secs How frequently to fetch deadlocks. Set to 0 to disable this setting.
get-processlist-secs How frequently to fetch processlist. Set to 0 to disable this setting.
get-vars-secs How frequently to fetch configuration vars. Set to 0 to disable this setting.
monitor-os-buffer-descriptors Enables sys.dm_os_buffer_descriptors metrics.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
truncate-digests-length Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited.

Configuration options for Redis

There are configuration options for the Redis metric Agent and the query Agent.

Redis metric agent file configuration options

Configuration Option Description
info-freq How frequently to capture INFO.
vars-freq How frequently to capture SHOW VARIABLES and other settings.

Redis query agent configuration files

Configuration Option Description
digest-mode

Digest mode: The following modes are available.

  • aggressive (default): strips after first non alpha

  • hexterminator: tries to preserve structure stripping hex suffixes/parts

  • cmdonly: preserves only the command

Query samples configuration files

SolarWinds Observability obfuscates all queries that are observed by normalizing them into digests, removing all literal text from the query. This obfuscation takes place locally and not within the API, and the digested query is transmitted to SolarWinds Observability.

In addition, SolarWinds Observability periodically captures individual samples of queries. Query samples include the literal text of the query, data about the execution such as latency, and (if possible) a visual execution plan.

For more information about query samples in SolarWinds Observability, see the Queries Explorer topic.

You can enable the capturing of query samples on each individual host monitored with SolarWinds Observability using the configuration file. Any option set in a configuration file takes precedence over the settings configured within the application.

Edit the file /etc/solarwinds/dbo-global.conf. Add the appropriate setting. The files are JSON formatted. As an example, if you wanted to disable the capturing of query text, you would add a line within the /etc/solarwinds/dbo-global.conf file "disable-sampling-text":"true":.

{
...,
"disable-sampling-text":"true"
}

If you wanted to capture MySQL query comments and execution metadata, but not raw text or explain plans you would enter the following in the configuration file.

{
...,
"query-comment-pattern":"*",
"enable-explains":"false"
}

The following query sample configuration options available are displayed in the table below.

Warning: Only one of these settings should be activated on your monitored host at a time.
Option Configuration file flag Description
Blacklist a set of queries to not sample "query-blacklist-pattern":"REGEXP" Collects samples that do not match the provided regular expression.
Capture comments & metadata "query-comment-pattern":"*" Captures query comments, metadata, and execution plans, but not raw query text.
Capture only metadata "disable-sampling-text":"true" Captures metadata and execution plans, but not raw text or comments.
Disable all sampling "disable-sampling":"true" Do not collect text, metadata, execution plans, or query comments.
Whitelist a set of queries to sample "query-whitelist-pattern":"REGEXP" Collects sample information if the query matches the provided regular expression.

If you want to disable execution plans, that can be done separately by adding "enable-explains":"false" to the configuration file.

Option Configuration file flag Description
Do not collect execution plans "enable-explains":"false" Do not collect execution plans. This can be used with one of the above options.