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).
-
/etc/solarwinds/dbo-global.conf
-
/etc/solarwinds/<agent-name>.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 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.
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 utilization configuration options
Global configuration option | Description |
---|---|
capture-buflen
|
Sets the size of the buffer for storing packet data when they are being received faster than they can be processed. The default is set to 8 MB. If a host is dropping packets this should be set to at least 32 MB. Setting this configuration to more than 160 MB does not usually bring additional benefit. If the packet loss is particularly variable from moment to moment increasing this value sometimes resolves packet loss. |
capture-mode
|
Sets how the query agent should process packets. The default is set to sync ; it is the most efficient but does not allow the agent to use multiple cores. Other values are async , which decodes packets in different threads, and auto , which lets the agent determine what to use on a per request basis. Depending on query workload you will need to test the performance of async vs. auto when changing num-procs .
|
num-procs
|
Sets the maximum number of processor cores the agent can use to mitigate packet loss in the query agent (swi-mysql-query ) when using TCP monitoring. The default is set to 1. Start by testing with 2, then 3 if necessary. When changing num-procs you must also change capture-mode .
|
Event configuration options
Global configuration option | Description |
---|---|
long-running-event-threshold |
Enables the creation of events for long-running queries and configures the threshold, in seconds. The default is set to 0, which turns the feature off. This configuration is expressed as time and units; for example, 60s. This environment setting can be overridden with a configuration file on a specific host, if that host should have a different threshold. |
max-db-conns-threshold
|
Sets the threshold for generating the DB connections warning alert. The defaults value is set to 95, meaning 95 percent of the maximum number of connections are in use. |
pg-vacuum-events
|
Comma-separated list of level:duration , where a vacuum lasting more than duration will trigger an event, for example, info:1m,warn:30m,crit:60m . This environment setting can be overridden with a configuration file on a specific host, if that host should have a different threshold.
|
Metric and other data collection configuration options
Global configuration options | Description |
---|---|
digest-metrics
|
Controls whether to digest numbers in database and table size metrics. For example, when this value is set to true , table_1 and table_2 would both become table_? for the purpose of table size metrics. Can be set to false .
|
enable-plist-lock-detector
|
Configures whether or not to try to detect queries waiting on a lock and queries holding a lock other threads desire. The default is set to true . Disabling can improve performance, and the query is automatically disabled if too many long-running threads are detected.
|
enable-table-sizes
|
Indicates whether to fetch database and table size information (data size, index size, total size, number of rows). The defaults value is set to true , and can be set to false . If this is set to true but the agent does not appear to be fetching table size data, restart the agent and check that the database does not exceed the 50,000 table maximum or that time-abort/time-size-abort was triggered.
|
max-subbatch-size
|
Sets the maximum number of databases and tables to fetch size information for at one time. Helps to keep the execution cost of the query low. The default is set to 50. See also top-table-limit and top-schema-limit .
|
processlist-query |
For MySQL databases only. Specify which query to use to fetch running processlist information. The default is set to auto which lets the metrics agent choose the least expensive option available for fetching this information. performance_schema.threads is the most efficient; then the agent will try information_schema.processlist and then SHOW PROCESSLIST . Options are performance_schema , information_schema , or processlist in addition to auto .
|
repl-heartbeat-ttl |
For MySQL databases only. The maximum age for a heartbeat row, after which it is considered invalid. The default is 300 seconds. After this time the replica database simply ignores the row. |
repl-heartbeat |
For MySQL databases only. Indicates whether to fetch replication delay information using a heartbeat table instead of database-provided functions such as SHOW SLAVE STATUS . The table must exist on both the primary and the secondary. The agent must have SELECT , INSERT , and UPDATE privileges on the table specified by repl-heartbeat-table . The default is set to false , but this can be set to true .
|
schema-blacklist |
Comma separated list of schema names to blacklist and not fetch database size metrics. |
show-status |
Configures whether to run MySQL database's show-status to collect data. The default is set to true . Set this option to false to see if show-status causes database performance issues (typically the result of a known bug in MySQL). Setting this to false is rare and non-query data collection is severely limited when this is enabled.
|
tag-delimiters |
Sets the characters used to identify and parse query tags in query comments into key/value pairs. The value is two characters; the first identifies what separates a key from a value, and the second separates pairs. The default value is equals (=) then a space (), meaning that it expects tags to look like foo=bar baz=xyzzy . |
time-abort
|
For MySQL databases only. Sets the maximum latency of our query to fetch database and table sizes before the feature is automatically disabled. The defaults is set to 3s (seconds). You must include the s (seconds). Note that if the query times out the agent will disable the feature and not try to enable it again until the agent is restarted. For a number of clients 3 seconds is too low because a single slow execution, even if the query is otherwise performant, will disable the data. |
time-size-abort |
For databases other than MySQL. Sets the maximum latency of our query to fetch database and table sizes before the feature is automatically disabled. The defaults is set to 3s (seconds). You must include the s (seconds). Note that if the query times out the agent will disable the feature and not try to enable it again until the agent is restarted. For a number of clients 3 seconds is too low because a single slow execution, even if the query is otherwise performant, will disable the data. |
top-schema-limit |
Sets the maximum number of databases for which to fetch size data. Databases ranked below the values (based on size) will be grouped into an Others row. Default is 50. Larger values may have performance implications. See also top-table-limit .
|
top-table-limit |
Sets the maximum number of tables for which to fetch size data. Tables ranked below the values (based on size) will be grouped into an Others row. The default is set to 50. Larger values may have performance implications. See also top-schema-limit .
|
track-offhost-prep-stmt
|
For MySQL databases only. Instructs the agent to track prepared statement queries when monitoring MySQL in off-host mode. This is done by querying the performance_schema.prepared_statements_instances table, which is available in MySQL v5.7 and newer. Th default is to disabled. Note: MySQL only stores information on active prepared statements, so enabling this option may not help for workloads that have many short-lived prepared queries.
|
Digest configuration options
Global configuration option | Description |
---|---|
digest-tags |
Specifies whether to digest query tags. The default is set to no . Can also be set to both , name , or value .
|
force-offhost-digests
|
Configures the MySQL metrics agent to attempt to turn on the statements_digest consumer, for an off-host installation, if it is disabled. Options are true and false . The default is set to false . Using this feature requires the agent’s user to have the UPDATE privilege on performance_schema.setup_consumers . |
max-digest-length
|
Controls the maximum length of characters to examine before truncation. The default is set to 2046, the maximum value is 32000. Smaller values will group long queries together which only differ at the end of the query; larger values will create more digests. Note that for off-host installations, enlarging this value will have no effect if the digest is truncated by the database before SolarWinds Observability SaaS collection. |
max-prep-stmts
|
Controls the maximum number of prepared statements per connection to track. The default is set to 500. When an execute is sent for a prepared statement, we will associate the data (latency, count, etc.) with the appropriate prepared statement assuming we saw the prior prepare. This option controls the number of prepared statements we will remember in this manner, per connection. This option is only relevant for MySQL and PostgreSQL installations monitoring with packet sniffing. |
ps-others-tolerance
|
The maximum percentage (expressed as a decimal) of queries being caught by the events_statements_summary_by_digest others row before triggering an event. The default is set to 0.5, but generally you do not want any queries caught by the others row. See the metric performance_schema_digest_lost for a count of the number of lost digests per second, and the dbo.agents.dbo_mysql_metrics.rds.others_ratio for the current others percentage. |
ps-truncate-events-summary |
Whether or not to have the agent truncate performance_schema.events_statements_summary_by_digest when it is putting too many digests into the others row. Defaults to false and can be set to true . When enabled, the agent needs the DROP privilege on performance_schema.events_statements_summary_by_digest . The threshold for truncation is set by ps-others-tolerance . For example, setting ps-others-tolerance to 0.1 means the agent will truncate the table when 10% of queries are attributed to the others row. You can monitor when agent truncation events occur with the dbo.agents.dbo_mysql_metrics.rds.events_truncated metric. |
truncate-digests-length |
For PostgreSQL databases off host. After digestion has already taken place for both query digests from pg_stat_statements and samples from pg_stat_activity truncate the resulting digest down to this length. This is to make the digested version from both sources match. Without using this option, they are more or less guaranteed to not match if the query is longer than max-digest-length . Set to some value smaller than max-digest-length .
|
Sample configuration options
Global configuration option | Description |
---|---|
disable-sampling-text
|
Disables collection of raw query text, as well as removes possibly-sensitive portions of execution plans, but still captures most execution plan information as well as execution metadata ( latency, connection ID, etc.) when set to true . The default is set to false . |
disable-sampling
|
Disables sample collection entirely for a host when set to true . The default is set to false . This eliminates collection of all aspects of query samples: metadata, execution plans, and raw query text. Setting this to true overrides any other sample collection option. |
dyn-sample-text
|
When set to true allows the agent to begin collecting query samples when otherwise disabled without requiring an agent restart. This does not enable collection, it only enables the possibility of dynamically enabling and disabling collection via the Inventory page.
|
enable-explains
|
Enables the capture of execution plans when set to true . The default is set to true , but this can also be set to false . Changing this value is rare. |
force-offhost-samples
|
Configures the MySQL metrics agent to attempt to turn on events_statements_history_long , for an off-host installation, if it is disabled. Options are true and false . The default is set to false . Using this feature requires the agent’s user to have the UPDATE privilege on performance_schema.setup_consumers . See also force-offhost-digests . |
max-execute-payload |
Maximum size (number of bytes) of a prepared statement that we will try to reconstruct into a query sample using values seen during an execute. Statements longer than this maximum will have their sample replaced with a "max size exceeded" message. Raising this will reconstruct longer statements at the cost of CPU time. Only applicable to MySQL and PostgreSQL databases which use the on-host (network sniffing) installation type. |
max-sample-length
|
Controls the maximum length of raw query text in samples. The default is 4096, and the maximum is 32000. Note that for off-host installations, enlarging this value will have no effect if the sample is truncated by the database before SolarWinds Observability 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 set to 7500. Each group consumes 40 bytes. If this value is too small, queries which run infrequently may not be sampled due to hash collisions with more frequent queries which update the last seen data. |
query-blacklist-pattern
|
A regular expression which describes the queries to not sample. All queries which do not match the blacklist will be sampled. Do not also enable disable-sampling or disable-sampling-text because those options supercede this one. See also query-whitelist-pattern . |
query-comment-pattern
|
A regular expression which describes the query comments to keep. This option discards query text and only keeps query comments which match the expression. The default is blank (keep all query text and all comments). Typical use is to specify * which will discard query text and keep all comments. (This is not a valid regular expression but it is handled appropriately.) |
query-whitelist-pattern
|
A regular expression which describes the queries to sample. All queries which do not match the whitelist will not be sampled. Do not also enable disable-sampling or disable-sampling-text because those options supercede this one. See also query-blacklist-pattern . |
Common database configuration options
There are common configuration options for all database types for the metric Agent and the query Agent.
Common metric agent configuration file options
Configuration Option | Description |
---|---|
digest-protect-regexp
|
When digesting, protect literals that match the regexp. |
disable-sampling
|
Do not send samples of queries. |
disable-sampling-text
|
Disable sending query text with samples. |
dyn-sample-text
|
Allow dynamically enabling full query sampling when instructed by supervisor. |
event-resend-period
|
Duration to wait between resending common events. |
fault-duration
|
How long to gather extra data when there is a fault. |
fault-interlude
|
How long after a fault before triggering another. |
fetch-config
|
Fetch configuration from, and report it to, the API. |
max-digest-length
|
Max length of query text to be digested (-1=infinite). |
max-query-slots
|
Max number of families to simultaneously track. |
override-os-certs
|
Use embedded CA certificates instead of the ones supplied by the OS. |
profiling
|
runtime/pprof profiling: <type>/<interval>, e.g. cpu/30s. |
query-blacklist-pattern
|
Regular expression describing the queries that should not be sampled. If not specified defaults to no queries. Operates independently of query-whitelist-pattern. |
query-comment-pattern
|
Whether samples should be restricted to query comments: `` No, `*` Yes, `...` regexp describing desired part of comment. |
query-obfuscation
|
Obfuscate SQL: %d=raw, %d=digest, %d=checksum" 1 -> ObfuscateRaw 2 -> ObfuscateDigest 3 -> ObfuscateChecksum. |
query-whitelist-pattern
|
Regular expression describing the queries that should be sampled. If not specified defaults to all queries. Operates independently of query-blacklist-pattern. |
sample-text-whitelist
|
A comma-separated list of query IDs to allow sample text for. Only applied if disable-sampling-text is set. |
strip-columns-regexp
|
When digesting, strip columns from INSERT/SELECT/UPDATE when query matches regexp. |
strip-columns-regexp-insert
|
When digesting, strip columns from INSERT when query matches regexp. |
strip-columns-regexp-select
|
When digesting, strip columns from SELECT when query matches regexp. |
strip-columns-regexp-update
|
When digesting, strip columns from UPDATE when query matches regexp. |
top-schema-limit
|
Top-N limit for database/schema/keyspace size metrics. |
top-table-limit
|
Top-N limit for table/collection/column/index size metrics. |
Common query agent configuration file options
Configuration Option | Description |
---|---|
autolimit-digest-rate
|
Automatically set digest levels to limit digest rate. |
block-fanout
|
If set, don't let the fanout task drop query events when the downstream channel is full. |
capture-buflen
|
Buffer size, in bytes, for the packet sniffer. |
capture-device
|
device to listen on; 'any' will listen on all in Linux. |
capture-mode
|
Mode to use in TCP sniffer: AUTO, ASYNC or SYNC. |
capture-snaplen
|
Maximum snapshot length to capture. |
capture-subsampling
|
Capture one connection in 2**n. Default 2**0 = 1, so all connections. |
capture-timeout
|
Maximum time to wait before emptying capture buffer. |
debug-queries
|
csv list of query ids to debug. |
default-pcap-helper
|
Use this if pcap-helper is not set. |
digest-pfx-collapse
|
List of comma separated prefixes that trigger aggresive digesting of the rest of the identifier. |
digest-queue-size
|
The number of query digests to queue for sending to the api at a time. If more queries than this are seen in a second they will be discarded, and we will try to send the digest the next time we see the query. |
disable-sampling
|
Do not take full-text samples of queries. |
dump-file
|
Read from this tcpdump file. |
dyn-sample-text
|
Allow dynamically enabling full query sampling when instructed by supervisor. |
enable-audit-first-filter
|
Enable the audit-first query sample filter. |
fetch-config
|
Fetch configuration from, and report it to, the API. |
max-conn
|
Track at most this many connections. |
max-digest-length
|
Max length of query text to be digested (-1=infinite). |
max-query-slots
|
Max number of query digests to remember. |
metrics-agent-name
|
Metrics agent name, used for IPC (->querysamples, <-conndata). |
num-procs
|
set runtime.GOMAXPROCS. |
override-os-certs
|
Use embedded CA certificates instead of the ones supplied by the OS. |
pcap-helper
|
Fully qualified filename of the pcap helper binary for unprivileged operation. |
profiling
|
runtime/pprof profiling: <type>/<interval>, e.g. cpu/30s. |
query-audit-pattern
|
Regular expression describing the queries that should be audited. Queries that match this pattern will be sampled at the first occurrence. |
query-blacklist-pattern
|
Regular expression describing the queries that should not be sampled. If not specified defaults to no queries. Operates independently of query-whitelist-pattern. |
query-log-buffer-size
|
Buffer size, in bytes, for the query log. |
query-obfuscation
|
Obfuscate SQL: %d=raw, %d=digest, %d=checksum" 1 -> ObfuscateRaw 2 -> ObfuscateDigest 3 -> ObfuscateChecksum. |
query-whitelist-pattern
|
Regular expression describing the queries that should be sampled. If not specified defaults to all queries. Operates independently of query-blacklist-pattern. |
stream-length-limit
|
Max. number of packets to track per stream per connection. (To cap memory/gc) |
subsample-scaling
|
Adjust stats to subsampling frequency. |
support-ipv6
|
Enable support for capturing IPv6 packets. |
tag-with-conn-id-level
|
Tag each query with its connection id. |
vlan-id
|
The first VLAN header should match this id. |
vlan-level
|
Support this many VLAN tags in a packet. |
Configuration options for MongoDB
There are configuration options for the MongoDB metric Agent and the query Agent.
MongoDB metric agent configuration file options
The following configuration options are available in the dbo-mongo-metrics.conf
configuration file.
Configuration option | Description |
---|---|
digest-sort
|
What to sort: polite sorts highly variable fields of insert/update , and aggresive sorts all fields of find/insert/update . |
digest-strip
|
What to digest down to: polite strips 2nd level of highly variable fields of insert/update , and aggressive strips all levels. |
digest-tags
|
UNUSED - // compatibility with other DB agents |
disable-pileup-detector
|
Disables pile-up fault detector. |
enable-explains
|
Enables explain() of sample queries. |
enable-processlist
|
Enables polling for currently running queries. |
enable-replset
|
Enables tracking of replica set status, including state and delay . |
enable-tablesize
|
Enables polling for table and index sizes. |
get-databases-int
|
Time to wait between updates to the list of tracked databases. |
get-table-data-per-int
|
Max number of table data updates per interval. |
get-tables-int
|
Time to wait between updates to the list of tracked tables. |
get-tables-per-int
|
Max number of database table list updates per interval. |
long-running-event-threshold
|
The threshold time for triggering events on long running queries. Defaults to 0 which means disabled. |
max-db-conns-threshold
|
Percent threshold for db connections event detector. Defaults to 95. |
profiler-allow-dbs
|
List of comma separated database names to monitor when polling profile, excluding all others. Disables profiler-block-dbs . |
profiler-block-dbs
|
List of comma separated database names to ignore when polling profile. |
send-faults
|
Sends events to the API when we detect a new fault. |
time-size-abort
|
Max execution time for an individual query before aborting polling for size metrics |
update-variables
|
How frequently to capture update variables in seconds. |
MongoDB query agent configuration file options
Configuration option | Description |
---|---|
digest-sort
|
What to sort: polite sorts highly variable fields of insert/update , and aggresive sorts all field of find/insert/update . |
digest-strip
|
What to digest down to: polite strips 2nd level of highly variable fields of insert/update , and aggressive strips all levels. |
digest-tags
|
Whether to digest tag components. |
rtime-warn
|
If response time is higher than rtime-warn , logs extra debug. |
slow-query-time
|
If response time is higher than slow-query-time, flag query as Slow . Note that this value will be updated to MongoDB's slowOpThresholdMs once a connection is established. |
Configuration options for MySQL
There are configuration options for the MySQL metric Agent and the query Agent.
MySQL metric agent configuration file options
The following configuration options are available in the dbo-mysql-metrics.conf
configuration file.
Configuration option | Description |
---|---|
allow-explain-subquery
|
Allows EXPLAINs of sample queries containing subqueries. |
cache-clear-cycles
|
Number of cycles before clearing cache of schemas associated with a table name. |
collapse-select-tables
|
When digesting, collapses tables referenced in SELECT statements [SELECT..FROM] . |
collapse-tables-regexp-select
|
When digesting, collapses tables from SELECT when query matches regexp. |
collapse-where-cond-regexp
|
When digesting, collapse the conditions referenced in the WHERE clause when query matches regexp |
collapse-where-conditions
|
When digesting, collapses the conditions referenced in the WHERE clause of statements. |
custom-dsn-attributes
|
Pipe separated list of DSN attributes to add/override as attr=value . |
digest-flag-triggers
|
A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option. |
digest-tags
|
Whether to digest tag components. |
disable-pileup-detector
|
Disables pile-up fault detector. |
enable-apm-dbo-trace
|
For MySQL off host installations. Set this option to true to enable the to parse traces. Note if you already have perf-schema-method : events_statements_history_long enabled in the configuration file, you do not need to set enable-apm-dbo-traces to true in the dbo-mysql-metric.conf file. |
enable-explains
|
Enables EXPLAINs of sample queries. |
enable-mutex-metrics
|
Enables mutex metrics for wait/synch/mutex/ instruments. |
enable-plist-lock-detector
|
Enables processlist metrics about queries belonging to a transaction that is blocking others. |
enable-plist-waits-detector
|
Enables processlist metrics about query wait stats. |
enable-ps-alt-samples
|
WILL BE REMOVED. Allow sampling from P_S.events_statements_history |
enable-row-metrics
|
Enables reading row access metrics from Information_schema.TABLE_STATISTICS . |
enable-table-sizes
|
Enables reading metrics from Information_schema.TABLES . |
error-limit
|
Maximum number of errors in a cycle before aborting size polling. |
failover-min-uptime-increase
|
Minimum number of seconds that uptime can increase until we detect a failover event. 0 disables detector. |
force-offhost-digests
|
In PS off-host mode, tries to enable the required consumer for Query Digests. WARNING: issues an UPDATE P_S.setup_consumers . |
force-offhost-samples
|
In PS off-host mode, tries to enable the required consumers for Query Samples. WARNING: issues an UPDATE P_S.setup_consumers . |
long-running-event-threshold
|
Time threshold for triggering events on long running queries. Defaults to 0 which means disabled. |
max-db-conns
|
Maximum number of concurrent DB connections. |
max-db-conns-threshold
|
Percent threshold for db connections event detector. Defaults to 95. |
max-open-tables
|
Max number of open tables. Above this number, the open tables tracking feature is disabled. |
max-open-tables-leeway
|
Deviation from max-open-tables that triggers turning the feature on-off (prevents intermittence) |
max-schema-tags
|
Maximum number of schema names to use as host tags. This is disabled if number of matching schemas exceeds this value. |
max-subbatch-size
|
Sets the maximum number of tables to query at once for table sizes. |
perf-schema-method
|
P_S method used for Query Metrics. Only used for off host. |
processlist-digest-obfuscation
|
The digest obfuscation method used to prevent plaintext leaks from processlist: none no obfuscation, checksum only sends Query IDs, auto (default) uses heuristics to switch between none and checksum on a digest-by-digest basis. |
processlist-query
|
The query method for reading the MySQL Processlist: processlist (SHOW FULL PROCESSLIST ), information_schema , performance_schema or disable . Use auto to let agent choose (default). |
ps-others-tolerance
|
Max fraction of unknown queries in PERFORMANCE_SCHEMA that doesn't trigger an event or TRUNCATE events_statements_summary_by_digest . |
ps-sleep-time
|
The time to sleep if the PERFORMANCE_SCHEMA query times are long. |
ps-truncate-events-summary
|
In PS off-host mode, TRUNCATE events_statements_summary_by_digest if the fraction of unknown queries is above ps-others-tolerance . |
repl-heartbeat
|
Measures replication delay once per second. |
repl-heartbeat-table
|
The database.table to measure replication delay. |
repl-heartbeat-ttl
|
The max age for a heartbeat row, after which it is considered invalid. |
restart-min-uptime-decrease
|
Minimum number of seconds that uptime can decrease until we detect a restart event. 0 disables detector. |
schema-blacklist
|
Comma separated list of schema names to avoid polling for size metrics. |
show-innodb-status
|
How frequently to capture SHOW INNODB STATUS . |
show-open-tables
|
How frequently to SHOW OPEN TABLES . |
show-slave
|
How frequently to capture SHOW SLAVE STATUS . |
show-status
|
Captures SHOW STATUS? . |
show-variables
|
How frequently to capture SHOW VARIABLES . |
slow-log-source
|
Off-host mode, using Slow Log. Options are local and aws . local will look up the local slow log path, aws will attempt to use RDS. If neither, slow log monitoring is disabled. |
strip-case
|
When digesting, removes CASE..END content. |
strip-insert-columns
|
When digesting, strips columns from INSERT . |
strip-select-columns
|
When digesting, strips columns from SELECT [SELECT..FROM] . |
strip-update-columns
|
When digesting, strips columns from UPDATE [SET..WHERE] . |
tgt-size-metrics-interval
|
Sets the target refresh time for table/schema metrics. It won't be faster than what max-subbatch-size allows. |
time-abort
|
Maximum time for retrieval of size metrics before aborting. The default is 3 seconds. Example config time-abort:10s . |
track-offhost-prep-stmt
|
Tracks prepared statements in off-host mode. |
trigger-flags
|
Specifies whether to collapse columns, tables, or both when a digest trigger is matched. |
truncate-multi-statements
|
When digesting, keeps only the first statement. |
MySQL query agent configuration options
Configuration Option | Description |
---|---|
ansi-quotes
|
Use sql_mode = ANSI_QUOTES . |
collapse-select-tables
|
When digesting, collapses tables referenced in SELECT statements [SELECT..FROM] . |
collapse-tables-regexp-select
|
When digesting, collapses tables from SELECT when query matches regexp. |
collapse-where-cond-regexp
|
When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp. |
collapse-where-conditions
|
When digesting, collapses the conditions referenced in the WHERE clause of statements. |
compression-support
|
Supports mysql compressed protocol. Enabled by default. |
digest-blacklist-pattern
|
Regular expression describing the queries that should not be reported. Queries whose digest match the regular expression will not show up in the web interface, and will have no metrics reported. |
digest-flag-triggers
|
A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option. |
digest-protect-regexp
|
When digesting, protects literals that match the regexp. |
digest-tags
|
Whether to digest tag components. |
max-execute-payload
|
Maximum size of an executed prepared statement to sample. |
max-prep-stmts
|
Maximum number of prepared statements to keep track of per connection. |
rtime-warn
|
If response time is higher than rtime-warn , log extra debug. |
send-sql-bytes
|
Sends host.queries.**.sql_bytes debugging metric. |
strip-case
|
When digesting, removes CASE..END content. |
strip-columns-regexp
|
When digesting, strips columns from INSERT /SELECT /UPDATE when query matches regexp. |
strip-columns-regexp-insert
|
strip-columns-regexp-insert
|
strip-columns-regexp-select
|
When digesting, strips columns from SELECT when query matches regexp. |
strip-columns-regexp-update
|
When digesting, strips columns from UPDATE when query matches regexp. |
strip-insert-columns
|
When digesting, strips columns from INSERT . |
strip-select-columns
|
When digesting, strips columns from SELECT [SELECT..FROM] . |
strip-update-columns
|
When digesting, strips columns from UPDATE [SET..WHERE] . |
trigger-flags
|
Specifies whether to collapse columns, tables, or both when a digest trigger is matched. |
truncate-multi-statements
|
When digesting, keeps only the first statement. |
Configuration options for PostgreSQL
There are configuration options for the PostgreSQL metric Agent and the query Agent.
PostgreSQL metric agent file configuration options
The following configuration options are available in the dbo-pgsql-metrics.conf
configuration file.
Configuration option | Description |
---|---|
digest-flag-triggers
|
A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option. |
disable-pileup-detector
|
Disables pile-up fault detector. |
enable-explains
|
Enables EXPLAINs of sample queries. |
enable-index-sizes
|
Enables reading metrics on index sizes from pg_stat_user_indexes . |
enable-plist-lock-detector
|
Enables processlist metrics about queries belonging to a transaction that is blocking others. |
enable-startup-check
|
Checks for the existence of pg_stat_statements before monitoring queries. Ignored if enable-stat-stmts is false . |
enable-stat-stmts
|
Enables reading metrics from pg_stat_statements . |
enable-table-sizes
|
Enables reading metrics on schema and table sizes from pg_stat_user_tables . |
errors-size-abort
|
Number of errors before aborting polls for size metrics. |
get-pg-stat-activity
|
How frequently to poll pg_stat_activity. |
get-pg-stat-bgwriter
|
How frequently to poll pg_stat_bgwriter . |
get-pg-stat-database
|
How frequently to poll pg_stat_database . |
get-table-interval
|
Interval for retrieving table size data. Up to second-level precision. |
long-running-event-threshold
|
The threshold time for triggering events on long running queries. Defaults to 0 which means disabled. |
max-schema-tags
|
Maximum number of schema names to use as host tags. This feature is disabled if number of matching schemas exceeds this value. |
optimization
|
Optimize for %s, %s or %s (the later imposes extra load on PostgreSQL) Param 1 - OptimizeCPU Param 2 - OptimizeMemory Param 3 - OptimizeBoth. |
pg-role
|
Role that should be assumed by agent instead of checking pg_roles . |
pg-vacuum-events
|
Comma-separated list of level:duration , where a vacuum lasting more than duration will trigger an event. For example info:1m,warn:30m . |
pgbouncer-force-metrics
|
Fetches metrics of a node behind a PgBouncer . |
show-variables
|
How frequently to capture SHOW ALL settings. |
slow-log-source
|
Off-host mode, using Slow Log . Options are local and aws . local will look up the local slow log file path, aws will attempt to use the RDS log file path. |
stat-stmts-sleep-time
|
The time to sleep if the statements queries take too long. |
time-size-abort
|
Max execution time for an individual query before aborting polling for size metrics. |
trigger-flags
|
Specifies whether to collapse columns, tables, or both when a digest trigger is matched. |
truncate-digests-length
|
Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited. |
PostgreSQL query agent configuration files
Configuration option | Description |
---|---|
collapse-select-tables
|
When digesting, collapses tables referenced in SELECT statements [SELECT..FROM] . |
collapse-tables-regexp-select
|
When digesting, collapses tables from SELECT when query matches regexp. |
collapse-where-cond-regexp
|
When digesting, collapses the conditions referenced in the WHERE clause when query matches regexp. |
collapse-where-conditions
|
When digesting, collapses the conditions referenced in the WHERE clause of statements. |
digest-flag-triggers
|
A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option. |
digest-protect-regexp
|
When digesting, protects literals that match the regexp. |
digest-tags
|
Whether to digest tag components. |
max-execute-payload
|
Maximum size of an executed prepared statement to sample. |
max-prep-stmts
|
Maximum number of prepared statements to keep track of per connection. |
rtime-warn
|
If response time is higher than rtime-warn , logs extra debug. |
send-sql-bytes
|
Sends host.queries.**.sql_bytes debugging metric. |
slow-query-time
|
If response time is higher than slow-query-time , flags query as Slow . Note that this value will be updated to Postgres' log_min_duration_statement (when greater than zero) once a connection is established |
strip-case
|
When digesting, removes CASE..END content. |
strip-columns-regexp
|
When digesting, strips columns from INSERT /SELECT /UPDATE when query matches regexp. |
strip-columns-regexp-insert
|
When digesting, strips columns from INSERT when query matches regexp. |
strip-columns-regexp-select
|
When digesting, strips columns from SELECT when query matches regexp. |
strip-columns-regexp-update
|
When digesting, strips columns from UPDATE when query matches regexp. |
strip-insert-columns
|
When digesting, strips columns from INSERT . |
strip-select-columns
|
When digesting, strips columns from SELECT [SELECT..FROM] . |
strip-update-columns
|
When digesting, strips columns from UPDATE [SET..WHERE] . |
trigger-flags
|
Specifies whether to collapse columns, tables, or both when a digest trigger is matched. |
Configuration options for SQL Server
There are configuration options for the SQL Server metric Agent.
SQL Server metric agent file configuration options
The following configuration options are available in the dbo-mssql-metrics.conf
configuration file.
Configuration option | Description |
---|---|
deadlocks-session-memory
|
The amount of memory (KB) to allocate to the session for event buffering. |
digest-flag-triggers
|
A comma-delimited list of strings to search for when digesting queries. If a match is found, apply the flags specified by the --trigger-flags option. |
get-deadlocks-secs
|
How frequently to fetch deadlocks. Set to 0 to disable this setting. |
get-processlist-secs
|
How frequently to fetch processlist. Set to 0 to disable this setting. |
get-vars-secs
|
How frequently to fetch configuration vars. Set to 0 to disable this setting. |
monitor-os-buffer-descriptors
|
Enables sys.dm_os_buffer_descriptors metrics. |
trigger-flags
|
Specifies whether to collapse columns, tables, or both when a digest trigger is matched. |
truncate-digests-length
|
Additionally truncate digests after processing so they are no longer than the specified limit. Defaults to unlimited. |
Configuration options for Redis
There are configuration options for the Redis metric Agent and the query Agent.
Redis metric agent file configuration options
Configuration Option | Description |
---|---|
info-freq
|
How frequently to capture INFO . |
vars-freq
|
How frequently to capture SHOW VARIABLES and other settings. |
Redis query agent configuration files
Configuration Option | Description |
---|---|
digest-mode
|
Digest mode: The following modes are available.
|
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 available are displayed in the table below.
Option | Configuration file flag | Description |
---|---|---|
Blacklist a set of queries to not sample | "query-blacklist-pattern":"REGEXP"
|
Collects samples that do not match the provided regular expression. |
Capture comments & metadata | "query-comment-pattern":"* " |
Captures query comments, metadata, and execution plans, but not raw query text. |
Capture only metadata | "disable-sampling-text":"true"
|
Captures metadata and execution plans, but not raw text or comments. |
Disable all sampling | "disable-sampling":"true" |
Do not collect text, metadata, execution plans, or query comments. |
Whitelist a set of queries to sample | "query-whitelist-pattern":"REGEXP" |
Collects sample information if the query matches the provided regular expression. |
If you want to disable execution plans, that can be done separately by adding "enable-explains":"false"
to the configuration file.
Option | Configuration file flag | Description |
---|---|---|
Do not collect execution plans | "enable-explains":"false"
|
Do not collect execution plans. This can be used with one of the above options. |