MySQL default checks and policies
Summarize
Summary of MySQL default checks and policies
The Agent Client Collector offers predefined checks and policies to monitor MySQL metrics effectively. These enable ServiceNow customers to verify MySQL database health, query results, thread counts, and process activities, ensuring timely detection of issues and optimized database performance.
Show less
MySQL Checks
- Check MySQL Alive (app.mysql.check-mysql-alive): Validates the size of a query result set against specified warning and critical thresholds. Useful to confirm expected data retrieval from MySQL.
- Check MySQL Threads (app.mysql.check-mysql-threads): Monitors the number of active MySQL threads and triggers alerts based on defined warning and critical thread count thresholds. This helps detect potential performance bottlenecks or overloads.
- Check MySQL Query (util.check-mysql-query): Confirms whether MySQL is running by evaluating thread counts against both upper and lower warning/critical limits, providing a comprehensive health check.
Each check supports connection options including host, port, UNIX socket, database name, and reading credentials from a MySQL configuration (.ini) file. This flexibility helps integrate with various MySQL deployment scenarios.
MySQL Metrics
- MySQL DB Metrics (app.mysql.metrics-mysql): Collects and reports various MySQL database metrics via a Graphite-compatible script, enabling detailed performance monitoring and trending.
- MySQL Thread Metrics (app.mysql.check-mysql-threads metric): Provides metrics on thread usage with alert thresholds for both high and low thread counts, reinforcing proactive monitoring.
- MySQL Process Metrics (app.mysql.metrics-mysql-processes): Gathers data on MySQL processes, including commands running and associated databases, delivering granular insight into database activities.
Metrics collection scripts support connection options similar to checks and allow a customizable metric naming scheme to fit into existing monitoring architectures.
Practical Use for ServiceNow Customers
- Enable these checks and metrics to receive automated, threshold-based alerts on MySQL health and performance.
- Use configuration options to securely connect to MySQL instances, including through .ini files that store credentials.
- Analyze metric outputs to understand query loads, thread usage, and active processes, facilitating capacity planning and troubleshooting.
- Integrate collected data into ServiceNow dashboards or external monitoring systems for consolidated visibility and faster incident response.
The Agent Client Collector provides the following default checks and policies for MySQL Metrics monitoring.
| Type | Check | Description | Usage and Usage example | Output |
|---|---|---|---|---|
| Event | app.mysql.check-mysql-alive | Verifies the length of a result set from a MySQL query. | check-mysql-query-result-count.rb (options) -c, --critical COUNT COUNT critical threshold for number of items returned by the query (required) -d, --database DATABASE MySQL database (required) -h, --host HOST MySQL Host to connect to (required) -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file. To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -P, --port PORT MySQL Port to connect to -q, --query QUERY Query to execute (required) -w, --warning COUNT Count warning threshold for number of items returned by the query (required) -S, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) Usage Example
|
MysqlQueryCountCheck OK/CRITICAL/WARNING: message regarding ratio between query length and threshold values |
| Event | app.mysql.check-mysql-threads | Verifies the MySQL DB number of running threads and assigns a status of OK/WARNING/CRITICAL depending on input values. | check-mysql-threads.rb (options) -h, --hostname HOST Hostname to login to -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file (Needed if .ini path provided). To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -c, --critnum NUMBER Number of running threads upon which an alert is issued -w, --warnnum NUMBER Number of running threads upon which a warning is issued -P, --port PORT MySQL Port to connect to -S, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) Usage Example
|
CheckMySQLHealth OK/Critical/Warning and number of running threads |
| Event | util.check-mysql-query | Verifies whether MySQL DB is running. | check-mysql-threads.rb (options) -h, --hostname HOST Hostname to login to -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file (Needed if .ini path is provided). To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -c, --critnum NUMBER Number of running threads upon which an alert is issued -w, --warnnum NUMBER Number of running threads upon which a warning is issued -l, --critlow NUMBER Number of running threads under which an alert is issued -m, --warnlow NUMBER Number of running threads under which a warning is issued -P, --port PORT MySQL Port to connect to -s, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) Usage Example
|
CheckMySQLHealth OK/Critical/Warning and number of running threads |
| Type | Check | Description | Usage and Usage Example | Output |
|---|---|---|---|---|
| Metric | app.mysql.metrics-mysql | Returns metrics on the MySQL DB. | /usr/local/bin/metrics-mysql-graphite.rb (options) -h, --host HOST MySQL host to connect to (required) -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file (Needed if .ini path is provided). To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -P, --port PORT MySQL port to connect to. -s, --scheme SCHEME Metric naming scheme, text to append to metric -S, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) -v, --verbose Show errors (if generated) regarding secondary status copies. Add -v to the Command to activate. Usage Example
|
MysqlQueryCountCheck OK/CRITICAL/WARNING: message regarding ratio between query length and threshold values |
| Metric | app.mysql.check-mysql-threads | Verifies the MySQL DB number of running threads and assigns a status of OK/WARNING/CRITICAL depending on input values. | /usr/local/bin/metrics-mysql-graphite.rb (options) -h, --hostname HOST Hostname to connect to (required) -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file (Needed if .ini path is provided). To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -c, --critnum NUMBER Number of running threads upon which an alert is issued -w, --warnnum NUMBER Number of running threads upon which a warning is issued -l, --critlow NUMBER Number of running threads under which an alert is issued -m, --warnlow NUMBER Number of running threads under which a warning is issued -P, --port PORT MySQL Port to connect to -s, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) Usage Example
|
hostname.mysql.general.abortedClients 7600 1649630975 hostname.mysql.general.abortedConnects 247 1649630975 hostname.mysql.general.txBytes 752733902 1649630975 hostname.mysql.commands.admin_commands 1631 1649630975 hostname.mysql.commands.alter_table 0 1649630975 |
| Metric | app.mysql.metrics-mysql-processes | Returns various metrics regarding MySQL DB processes | /usr/local/bin/metrics-mysql-processes.rb (options) -h, --host MySQL host to connect to -i, --ini VALUE My.cnf ini file --ini-section VALUE Section in my.cnf ini file (Needed if .ini path is provided). To enable connection to MySQL thru the .ini file, provide the values against the properties 'user' and 'password' in the client section in the .ini file. -P, --port PORT MySQL Port to connect to -s --scheme SCHEME Metric naming scheme, text to append to metric -s, --socket UNIX socket to connect to (required if host specified is 'localhost' on UNIX - like systems) Usage Example
|
processes, commands they're running and the databases they're running the commands on Example:
|