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
-
/etc/solarwinds/<agent-name>.conf, overrides the global database configuration file.Agent configuration files for database types
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.confdbo-mongo-query.confdbo-pgsql-query.confdbo-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 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 |
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.
|
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.
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.
| 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. |