You create rules using the same screen seen in Figure 2.5, “MySQL Enterprise Dashboard: Editing Rules”. To create a new rule with all-new settings, click the create rule button. To create a rule similar to an existing one, click the copy rule button. You can edit any rule element during the copying process, unlike editing an existing rule.
You can change the rule name, change the advisor group that a rule belongs to, and set your own version number. In Figure 2.5, “MySQL Enterprise Dashboard: Editing Rules”, you have already seen how to alter the threshold and frequency of a rule.
If you do not specify a version number for the new rule, the
version 1.0 is automatically added.
Most importantly, you can alter a rule's expression. Expressions are the core of a MySQL Enterprise Advisor and define the scenario being monitored. An expression can be as simple as a single server parameter or can be complex, combining multiple parameters with mathematical operations.
An expression has two main characteristics:
An expression tests whether a best practice is being violated.
The result of an expression must always be 1 or 0 (corresponding to true or false).
For example, if you decide that enabling binary logging is a
best practice for a production server (as Oracle recommends),
then this best practice is violated if
log_bin is OFF.
Consequently, the expression for the “Binary Logging Not
Enabled” rule is “%log_bin% == OFF”. If this
evaluates to 1, an alarm is raised because the best practice is
not being followed.
An expression is made up of one or more variables and zero or more mathematical operators. The MySQL Enterprise Monitor product uses the Java Expression Parser. The operators and functions consist of:
The IN() operator.
The MySQL functions LEAST(),
LOCATE(), ABS(),
MOD(), NOW() (returns
time since unix epoch UTC in seconds),
UNIX_TIMESTAMP (technically a no-op), and
INTERVAL [n] SECOND, MINUTE, HOUR, WEEK,
MONTH.
The operators functions listed on this page: http://www.singularsys.com/jep/doc/html/operators.html.
Comparisons with MySQL timestamps and datetimes collected by
the agent in the standard MySQL format 'YYYY-MM-DD
hh:mm:ss[..
nanos]'
The IF function: IF
(
returns either condition,
true_expression,
false_expression)true_expression or
false_expression, depending on
whether condition is true or
false. This function uses short-circuit evaluation, so only
one of the return expressions is evaluated.
The
LEFT(string,
length) and
RIGHT(string,
length) functions.
The
NUM(string)
function.
The
CAST(expression
as type) function is not
implemented. Instead, use
NUM(string)
to use strings as numbers.
Other functions and operators may be implemented as needed to assist with custom rule creation. Open a service request if you have such a requirement.
For a complete list of the built-in variables used to create rules, see Server Option and Variable Reference.
Creating an expression is dependent on variables defined in the Variable Assignment frame. This frame links variables used in the expression field with data gathered from the target MySQL server instance: server status variables, operating system status information, and table information. Variable names are associated with elements in the Data Item drop-down list. To define more than one variable, click the add row button. For a complete listing of the data collection items used in creating rules, see Appendix D, Data Collection Items.
The remaining fields determine the information that you receive in a notification email or the informational pop-up window associated with each advisor.
When saving a new rule, choose a unique name not used by any existing rule.
