Documentation forSolarWinds Observability SaaS

Database configuration files

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

Global and agent configuration files

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

  • Linux:

    • /etc/solarwinds/dbo-global.conf

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

  • Windows:

    • C:\ProgramData\SolarWinds\UAMSClient\plugin-storage\dbo-global.conf

    • C:\ProgramData\SolarWinds\UAMSClient\plugin-storage\<agent-name>-global.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 MongoDB metrics agents on the agent host.
dbo-pgsql-metrics.conf Applies to all PostgeSQL metrics agents on the agent host.
dbo-mssql-metrics.conf Applies to all SQL Server metrics agents on the agent host.
dbo-oracle-metrics.conf Applies to all Oracle 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

Oracle does not use a separate query agent configuration file because Oracle monitoring is off-host only.

Global configuration file options

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

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).

Resource usage 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 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 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 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 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 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 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 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 default value is 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 verify that the database does not exceed the 50,000 table maximum or if 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 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 auto which lets the metrics agent choose the least expensive option available for fetching this information. The performance_schema.threads option 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 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 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.
tag-denylist List of comma separated tags to be ignored.
tag-allowlist List of comma separated tags to be allowed.
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 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 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. The 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 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 later. By default. it is disabled.

MySQL stores information only 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 no. This 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 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 2046, and the maximum value is 32000. Smaller values group long queries together which only differ at the end of the query. Larger values create more digests. Note that for off-host installations, enlarging this value has no effect if the digest is truncated by the database before SolarWinds Observability SaaS collection.
max-prep-stmts Controls the maximum number of prepared statements per connection to track. The default is 500. When an execute is sent for a prepared statement, we will associate the data (latency, count, and so on) 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 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 Specifies 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 not to 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, and also removes possibly-sensitive portions of execution plans, but still captures most execution plan information as well as execution metadata (latency, connection ID, and so on) when set to true. The default is false.
disable-sampling Disables sample collection entirely for a host when set to true. The default is 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 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 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 execution. 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 has no effect if the sample is truncated by the database before SolarWinds Observability SaaS 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 7500. Each group consumes 40 bytes. If this value is too small, queries that run infrequently may not be sampled due to hash collisions with more frequent queries that update the last seen data.
query-blacklist-pattern A regular expression that describes the queries to not sample. All queries that do not match the blacklist will be sampled. Do not also enable disable-sampling or disable-sampling-text because those options supersede this one. See also query-whitelist-pattern.
query-comment-pattern A regular expression that describes the query comments to keep. This option discards query text and keeps only query comments that 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 that describes the queries to sample. All queries that do not match the whitelist will not be sampled. Do not also enable disable-sampling or disable-sampling-text, because those options supersede 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
digest-protect-regexp When digesting, protect literals that match the regular expression.
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.
max-digest-length Maximum length of query text to be digested (-1 is infinite).
max-query-slots Maximum 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> (for example, CPU/30s).
query-blacklist-pattern Regular expression describing the queries that should not be sampled. If this is not specified, the default is no queries. Operates independently of the query-whitelist-pattern.
query-comment-pattern Whether samples should be restricted to query comments. Values are No, *, Yes, ... a regular expression describing the desired part of the 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 this is not specified, the default is no 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.
strip-columns-regexp When digesting, strip columns from INSERT/SELECT/UPDATE when query matches the regular expression.
strip-columns-regexp-insert When digesting, strip columns from INSERT when query matches the regular expression.
strip-columns-regexp-select When digesting, strip columns from SELECT when query matches the regular expression.
strip-columns-regexp-update When digesting, strip columns from UPDATE when query matches the regular expression.
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. The value any listens 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. The default 2**0 = 1, which captures all connections.
capture-timeout Maximum time to wait before emptying the 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 aggressive 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.
max-conn The maximum number of connections to track.
max-digest-length Maximum length of query text to be digested (-1 is infinite).
max-query-slots Maximum 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 file name of the pcap helper binary for unprivileged operation.
profiling Runtime/pprof profiling: <type>/<interval> (for example, CPU/30s).
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 this value is not specified, the default is 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 this value is not specified, the default is no queries. Operates independently of query-blacklist-pattern.
stream-length-limit Maximum 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-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 Maximum 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 Maximum 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 database 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 Maximum execution time for an individual query before polling for size metrics is aborted.
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 second 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 is 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 the regular expression.
collapse-where-cond-regexp When digesting, collapse the conditions referenced in the WHERE clause when query matches the regular expression.
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 that 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-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 size polling is aborted.
failover-min-uptime-increase Minimum number of seconds that uptime can increase before we detect a failover event. A value of 0 disables detection.
force-offhost-digests In PS off-host mode, tries to enable the required consumer for Query Digests. WARNING: This 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: This 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 database connections.
max-db-conns-threshold Percent threshold for database connections event detector. Defaults to 95.
max-open-tables Maximum 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 the number of matching schemas exceeds this value.
max-subbatch-size The maximum number of tables to query at once for table sizes.
perf-schema-method P_S method used for Query Metrics. Only used for off host.
processlist-digest-obfuscation The digest obfuscation method used to prevent plaintext leaks from processlist: nonemeans no obfuscation, checksum sends only 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 the agent choose (the default).
ps-others-tolerance Maximum 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 maximum 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. A value of 0 disables detection.
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. The value locallooks up the local slow log path. The value aws attempts 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 it is aborted. 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 a query matches the regular expression.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when a query matches the regular expression.
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 regular expression.
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 the regular expression.
strip-columns-regexp-insert

When digesting, strips columns from INSERT when a query matches the regular expression.

strip-columns-regexp-select When digesting, strips columns from SELECT when a query matches the regular expression.
strip-columns-regexp-update When digesting, strips columns from UPDATE when a query matches the regular expression.
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 The number of errors before polls for size metrics are aborted.
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 the 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 the 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. The value local looks up the local slow log file path. The value aws attempts 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 Maximum execution time for an individual query before polling for size metrics is aborted.
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 a query matches the regular expression.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when a query matches the regular expression.
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 regular expression.
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 the PostgreSQL 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 a query matches the regular expression.
strip-columns-regexp-insert When digesting, strips columns from INSERT when a query matches the regular expression.
strip-columns-regexp-select When digesting, strips columns from SELECT when a query matches the regular expression.
strip-columns-regexp-update When digesting, strips columns from UPDATE when a query matches the regular expression.
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 Oracle

There are configuration options for the Oracle metrics agent.

Oracle monitoring uses the metrics agent for collection. There is no Oracle query agent configuration file for packet-based query capture.

Configuration option Description
enable-explains Enables collecting execution plans for sampled queries.
report-internal-sql Includes metrics for SQL parsed by Oracle internal schemas such as SYS and DBSNMP.
parse-deadlock-trace-file Enables reading Oracle trace-file contents to enrich deadlock events.
max-db-conns Sets the maximum number of concurrent database connections used by the agent.
long-running-event-threshold Sets the runtime threshold beyond which long-running query events are emitted.
blocked-session-threshold Sets the minimum wait duration for reporting a session as blocked.

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 SaaS 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 SaaS.

In addition, SolarWinds Observability SaaS 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 SaaS, see Examine query samples.

You can enable the capturing of query samples on each individual host monitored with SolarWinds Observability SaaS 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 are available.

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 and 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 options described above.