mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-09 18:30:16 +00:00
Implement trigger functions show_variables and show_status.
This commit is contained in:
34
bin/pt-stalk
34
bin/pt-stalk
@@ -77,6 +77,9 @@ MB_THRESHOLD=${MB_THRESHOLD:-100}
|
|||||||
# Remove samples after this many days.
|
# Remove samples after this many days.
|
||||||
PURGE=${PURGE:-30}
|
PURGE=${PURGE:-30}
|
||||||
|
|
||||||
|
# Which trigger function to call to get the value of VARIABLE.
|
||||||
|
TRIGGER_FUNCTION=${TRIGGER_FUNCTION:-"show_status"}
|
||||||
|
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
# End configuration
|
# End configuration
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
@@ -89,6 +92,19 @@ die() {
|
|||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ########################################################################
|
||||||
|
# Trigger functions
|
||||||
|
# ########################################################################
|
||||||
|
show_status() {
|
||||||
|
local var=$1
|
||||||
|
mysqladmin ${MYSQLOPTIONS} extended-status | grep ${VARIABLE} | awk '{print $4}'
|
||||||
|
}
|
||||||
|
|
||||||
|
show_variables() {
|
||||||
|
local var=$1
|
||||||
|
mysqladmin ${MYSQLOPTIONS} variables | grep ${VARIABLE} | awk '{print $4}'
|
||||||
|
}
|
||||||
|
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
# Echo to STDERR and possibly email.
|
# Echo to STDERR and possibly email.
|
||||||
# ########################################################################
|
# ########################################################################
|
||||||
@@ -119,11 +135,11 @@ main() {
|
|||||||
while true; do
|
while true; do
|
||||||
d=$(date +%F-%T | tr :- _);
|
d=$(date +%F-%T | tr :- _);
|
||||||
|
|
||||||
# XXX This is where we decide whether to execute 'collect'.
|
# This is where we decide whether to execute 'collect'.
|
||||||
# XXX Customize this if needed. The idea is to generate a number and store
|
# The idea is to generate a number and store into $detected,
|
||||||
# XXX it into $detected, and if $detected > $THRESHOLD, then we'll execute
|
# and if $detected > $THRESHOLD, then we'll execute pt-collect.
|
||||||
# XXX the collection process.
|
local detected=$($TRIGGER_FUNCTION $VARIABLE)
|
||||||
detected=$(mysqladmin ext ${MYSQLOPTIONS} | grep ${VARIABLE} | awk '{print $4}');
|
|
||||||
if [ -z "${detected}" -a ${MAYBE_EMPTY} = "no" ]; then
|
if [ -z "${detected}" -a ${MAYBE_EMPTY} = "no" ]; then
|
||||||
# Oops, couldn't connect, maybe max_connections problem?
|
# Oops, couldn't connect, maybe max_connections problem?
|
||||||
echo "$d The detected value is empty; something failed? Exit status is $?"
|
echo "$d The detected value is empty; something failed? Exit status is $?"
|
||||||
@@ -137,8 +153,6 @@ main() {
|
|||||||
cycles_true=0
|
cycles_true=0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# XXX Stop customizing here; everything above should be what you need.
|
|
||||||
|
|
||||||
NOTE="$d check results: ${VARIABLE} = ${detected}, matched = ${matched}, cycles_true = ${cycles_true}"
|
NOTE="$d check results: ${VARIABLE} = ${detected}, matched = ${matched}, cycles_true = ${cycles_true}"
|
||||||
# Actually execute the collection script.
|
# Actually execute the collection script.
|
||||||
if [ "${matched:-no}" = "yes" -a ${cycles_true} -ge ${CYCLES} ]; then
|
if [ "${matched:-no}" = "yes" -a ${cycles_true} -ge ${CYCLES} ]; then
|
||||||
@@ -154,7 +168,6 @@ main() {
|
|||||||
sleep ${INTERVAL}
|
sleep ${INTERVAL}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Delete things more than $PURGE days old
|
# Delete things more than $PURGE days old
|
||||||
find "${DEST}" -type f -mtime +${PURGE} -exec rm -f '{}' \;
|
find "${DEST}" -type f -mtime +${PURGE} -exec rm -f '{}' \;
|
||||||
find "/var/lib/oprofile/samples" -type d -name 'pt_collect_*' \
|
find "/var/lib/oprofile/samples" -type d -name 'pt_collect_*' \
|
||||||
@@ -273,6 +286,11 @@ This is the max number of <whatever> we want to tolerate.
|
|||||||
|
|
||||||
This is the thing to check for.
|
This is the thing to check for.
|
||||||
|
|
||||||
|
=item TRIGGER_FUNCTION (default show_status)
|
||||||
|
|
||||||
|
Built-in function name to get the value of VARIABLE, either C<show_status>
|
||||||
|
or C<show_variables>.
|
||||||
|
|
||||||
=item CYCLES (default 1)
|
=item CYCLES (default 1)
|
||||||
|
|
||||||
How many times must the condition be met before the script will fire?
|
How many times must the condition be met before the script will fire?
|
||||||
|
Reference in New Issue
Block a user