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
hostname Sets a custom hostname to identify the host in SolarWinds Observability. This is useful when monitoring a managed database such as RDS and the host running SolarWinds Observability is likely to change.
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).
host-tags A comma-separated list of tags to apply to this host. Spaces are not permitted.
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
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.
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.
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.

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.
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.
disk-full-threshold-warn Configures the percent remaining disk space that will trigger a warning-level event that disk space is low. The default value is set to 10. Note that this is only applicable to installations where the agent runs on the same server as the database; use a CloudWatch or Stackdriver metric to create an Alert when monitoring remotely.
disk-full-threshold-crit Configures the percent remaining disk space that will trigger a critical-level event that disk space is critically low. Note that this is only applicable to installations where the agent runs on the same server as the database; use a CloudWatch or Stackdriver metric to create an Alert when monitoring remotely.
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.

Metric and other data collection configuration options

Global configuration options Description
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.
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-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.
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.
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.
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.
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.
schema-blacklist Comma separated list of schema names to blacklist and not fetch database size metrics.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
digest-tags Specifies whether to digest query tags. The default is set to no. Can also be set to both, name, or value.
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.
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.

Sample configuration options

Global configuration option Description
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.
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.
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.
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.
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-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.
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.
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.)
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.

Configuration options for MongoDB

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

Configuration option Description
enable-processlist Enables polling for currently running queries.
enable-tablesize Enables polling for table and index sizes.
enable-replset Enables tracking of replica set status, including state and delay.
disable-pileup-detector Disables pile-up fault detector.
send-faults Sends events to the API when we detect a new fault.
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.
enable-explains Enables explain() of sample queries.
profiler-block-dbs List of comma separated database names to ignore when polling profile.
profiler-allow-dbs List of comma separated database names to monitor when polling profile, excluding all others. Disables profiler-block-dbs.
get-databases-int Time to wait between updates to the list of tracked databases.
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.
get-table-data-per-int Max number of table data updates per interval.
time-size-abort Max execution time for an individual query before aborting polling for size metrics
max-db-conns-threshold Percent threshold for db connections event detector. Defaults to 95.
update-variables How frequently to capture update variables in seconds.
long-running-event-threshold The threshold time for triggering events on long running queries. Defaults to 0 which means disabled.
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.
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.

Configuration options for MySQL

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

Configuration option Description
ps-sleep-time The time to sleep if the PERFORMANCE_SCHEMA query times are long.
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-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.
show-status Captures SHOW STATUS?.
show-variables How frequently to capture SHOW VARIABLES.
show-slave How frequently to capture SHOW SLAVE STATUS.
show-innodb-status How frequently to capture SHOW INNODB STATUS.
show-open-tables How frequently to SHOW OPEN TABLES.
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)
enable-explains Enables EXPLAINs of sample queries.
allow-explain-subquery Allows EXPLAINs of sample queries containing subqueries.
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.
perf-schema-method P_S method used for Query Metrics.
track-offhost-prep-stmt Tracks prepared statements in off-host mode.
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.
max-db-conns Maximum number of concurrent DB connections.
enable-table-sizes Enables reading metrics from Information_schema.TABLES.
enable-row-metrics Enables reading row access metrics from Information_schema.TABLE_STATISTICS.
max-subbatch-size Sets the maximum number of tables to query at once for table sizes.
tgt-size-metrics-interval Sets the target refresh time for table/schema metrics. It won't be faster than what max-subbatch-size allows.
error-limit Maximum number of errors in a cycle before aborting size polling.
cache-clear-cycles Number of cycles before clearing cache of schemas associated with a table name.
time-abort Maximum time for retrieval of size metrics before aborting. The default is 3 seconds. Example config time-abort:10s.
schema-blacklist Comma separated list of schema names to avoid polling for size metrics.
max-db-conns-threshold Percent threshold for db connections event detector. Defaults to 95.
restart-min-uptime-decrease Minimum number of seconds that uptime can decrease until we detect a restart event. 0 disables detector.
failover-min-uptime-increase Minimum number of seconds that uptime can increase until we detect a failover event. 0 disables detector.
disable-pileup-detector Disables pile-up fault detector.
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).
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.
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-mutex-metrics Enables mutex metrics for wait/synch/mutex/ instruments.
custom-dsn-attributes Pipe separated list of DSN attributes to add/override as attr=value.
long-running-event-threshold Time threshold 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 is disabled if number of matching schemas exceeds this value.
truncate-multi-statements When digesting, keeps only the first statement.
strip-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
strip-insert-columns When digesting, strips columns from INSERT.
strip-case When digesting, removes CASE..END content.
digest-tags Whether to digest tag components.
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-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
collapse-where-cond-regexp When digesting, collapse the conditions referenced in the WHERE clause when query matches regexp
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.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
enable-gcp Enables GCP metrics.
gcp-acct-credentials-file Fully qualified filename for GCP credentials.
compression-support Supports mysql compressed protocol. Enabled by default.
max-prep-stmts Maximum number of prepared statements to keep track of per connection.
max-execute-payload Maximum size of an executed prepared statement to sample.
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.
rtime-warn If response time is higher than rtime-warn, log extra debug.
ansi-quotes Use sql_mode = ANSI_QUOTES.
truncate-multi-statements When digesting, keeps only the first statement.
strip-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
strip-insert-columns When digesting, strips columns from INSERT.
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.
digest-protect-regexp When digesting, protects literals that match the regexp.
send-sql-bytes Sends host.queries.**.sql_bytes debugging metric.
digest-tags Whether to digest tag components.
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-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp.
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.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.

Configuration options for PostgreSQL

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

Configuration option Description
get-pg-stat-database How frequently to poll pg_stat_database.
get-pg-stat-bgwriter How frequently to poll pg_stat_bgwriter.
get-pg-stat-activity How frequently to poll pg_stat_activity.
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.
show-variables How frequently to capture SHOW ALL settings.
enable-explains Enables EXPLAINs of sample queries.
enable-startup-check Checks for the existence of pg_stat_statements before monitoring queries. Ignored if enable-stat-stmts is false.
stat-stmts-sleep-time The time to sleep if the statements queries take too long.
optimization Optimize for %s, %s or %s (the later imposes extra load on PostgreSQL) Param 1 - OptimizeCPU Param 2 - OptimizeMemory Param 3 - OptimizeBoth.
enable-table-sizes Enables reading metrics on schema and table sizes from pg_stat_user_tables.
enable-index-sizes Enables reading metrics on index sizes from pg_stat_user_indexes.
get-table-interval Interval for retrieving table size data. Up to second-level precision.
errors-size-abort Number of errors before aborting polls for size metrics.
time-size-abort Max execution time for an individual query before aborting polling for size metrics.
disable-pileup-detector Disables pile-up fault detector.
enable-plist-lock-detector Enables processlist metrics about queries belonging to a transaction that is blocking others.
pg-role Role that should be assumed by agent instead of checking pg_roles.
truncate-digests-length Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited.
pgbouncer-force-metrics Fetches metrics of a node behind a PgBouncer.
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.
long-running-event-threshold The threshold time for triggering events on long running queries. Defaults to 0 which means disabled.
enable-cloud-tags Enables fetching tags from AWS automatically.
cloud-tags-interval Synchronization time interval before triggering another tag fetching.
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.
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.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
enable-gcp Enables GCP metrics.
gcp-acct-credentials-file Fully qualified filename for GCP credentials.
max-prep-stmts Maximum number of prepared statements to keep track of per connection.
max-execute-payload Maximum size of an executed prepared statement to sample.
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, 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-select-columns When digesting, strips columns from SELECT [SELECT..FROM].
strip-update-columns When digesting, strips columns from UPDATE [SET..WHERE].
strip-insert-columns When digesting, strips columns from INSERT.
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.
digest-protect-regexp When digesting, protects literals that match the regexp.
send-sql-bytes Sends host.queries.**.sql_bytes debugging metric.
digest-tags Whether to digest tag components.
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-conditions When digesting, collapses the conditions referenced in the WHERE clause of statements.
collapse-where-cond-regexp When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp.
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.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.

Configuration options for SQL Server

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

Configuration option Description
monitor-os-buffer-descriptors Enables sys.dm_os_buffer_descriptors metrics.
truncate-digests-length Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited.
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.
trigger-flags Specifies whether to collapse columns, tables, or both when a digest trigger is matched.
get-vars-secs How frequently to fetch configuration vars. 0 disable.
get-processlist-secs How frequently to fetch processlist. 0 disable.
get-deadlocks-secs How frequently to fetch deadlocks. 0 disable.
deadlocks-session-memory The amount of memory (KB) to allocate to the session for event buffering.

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
Disable all sampling "disable-sampling":"true" Do not collect text, metadata, execution plans, or query comments.
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.
Whitelist a set of queries to sample "query-whitelist-pattern":"REGEXP" Collects sample information if the query matches the provided regular expression.
Blacklist a set of queries to not sample "query-blacklist-pattern":"REGEXP" Collects samples that do not match 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.