mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-12 14:18:32 +00:00
Merged experimental-fix-986847-pt-stalk-set-command
This commit is contained in:
68
bin/pt-stalk
68
bin/pt-stalk
@@ -648,18 +648,18 @@ remove_pid_file() {
|
|||||||
|
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
CMD_GDB="$(_which gdb)"
|
CMD_GDB="${CMD_GDB:-"$(_which gdb)"}"
|
||||||
CMD_IOSTAT="$(_which iostat)"
|
CMD_IOSTAT="${CMD_IOSTAT:-"$(_which iostat)"}"
|
||||||
CMD_MPSTAT="$(_which mpstat)"
|
CMD_MPSTAT="${CMD_MPSTAT:-"$(_which mpstat)"}"
|
||||||
CMD_MYSQL="$(_which mysql)"
|
CMD_MYSQL="${CMD_MYSQL:-"$(_which mysql)"}"
|
||||||
CMD_MYSQLADMIN="$(_which mysqladmin)"
|
CMD_MYSQLADMIN="${CMD_MYSQLADMIN:-"$(_which mysqladmin)"}"
|
||||||
CMD_OPCONTROL="$(_which opcontrol)"
|
CMD_OPCONTROL="${CMD_OPCONTROL:-"$(_which opcontrol)"}"
|
||||||
CMD_OPREPORT="$(_which opreport)"
|
CMD_OPREPORT="${CMD_OPREPORT:-"$(_which opreport)"}"
|
||||||
CMD_PMAP="$(_which pmap)"
|
CMD_PMAP="${CMD_PMAP:-"$(_which pmap)"}"
|
||||||
CMD_STRACE="$(_which strace)"
|
CMD_STRACE="${CMD_STRACE:-"$(_which strace)"}"
|
||||||
CMD_SYSCTL="$(_which sysctl)"
|
CMD_SYSCTL="${CMD_SYSCTL:-"$(_which sysctl)"}"
|
||||||
CMD_TCPDUMP="$(_which tcpdump)"
|
CMD_TCPDUMP="${CMD_TCPDUMP:-"$(_which tcpdump)"}"
|
||||||
CMD_VMSTAT="$(_which vmstat)"
|
CMD_VMSTAT="${CMD_VMSTAT:-"$(_which vmstat)"}"
|
||||||
|
|
||||||
[ -z "$CMD_SYSCTL" -a -x "/sbin/sysctl" ] && CMD_SYSCTL="/sbin/sysctl"
|
[ -z "$CMD_SYSCTL" -a -x "/sbin/sysctl" ] && CMD_SYSCTL="/sbin/sysctl"
|
||||||
|
|
||||||
@@ -1843,7 +1843,49 @@ Print tool's version and exit.
|
|||||||
|
|
||||||
=head1 ENVIRONMENT
|
=head1 ENVIRONMENT
|
||||||
|
|
||||||
This tool does not use any environment variables for configuration.
|
This tool does not require any environment variables for configuration,
|
||||||
|
although it can be influenced to work differently by through several
|
||||||
|
variables. Keep in mind that these are expert settings, and should not
|
||||||
|
be used in most cases.
|
||||||
|
|
||||||
|
Specifically, the variables that can be set are:
|
||||||
|
|
||||||
|
=over
|
||||||
|
|
||||||
|
=item CMD_GDB
|
||||||
|
|
||||||
|
=item CMD_IOSTAT
|
||||||
|
|
||||||
|
=item CMD_MPSTAT
|
||||||
|
|
||||||
|
=item CMD_MYSQL
|
||||||
|
|
||||||
|
=item CMD_MYSQLADMIN
|
||||||
|
|
||||||
|
=item CMD_OPCONTROL
|
||||||
|
|
||||||
|
=item CMD_OPREPORT
|
||||||
|
|
||||||
|
=item CMD_PMAP
|
||||||
|
|
||||||
|
=item CMD_STRACE
|
||||||
|
|
||||||
|
=item CMD_SYSCTL
|
||||||
|
|
||||||
|
=item CMD_TCPDUMP
|
||||||
|
|
||||||
|
=item CMD_VMSTAT
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
For example, during collection iostat is called with a -dx argument, but
|
||||||
|
because you have an NFS partition, you also need the -n flag there. Instead
|
||||||
|
of editing the source, you can call pt-stalk as
|
||||||
|
|
||||||
|
CMD_IOSTAT="iostat -n" pt-stalk ...
|
||||||
|
|
||||||
|
which will do exactly what you need. Combined with the plugin hooks, this
|
||||||
|
gives you a fine-grained control of what the tool does.
|
||||||
|
|
||||||
=head1 SYSTEM REQUIREMENTS
|
=head1 SYSTEM REQUIREMENTS
|
||||||
|
|
||||||
|
@@ -28,18 +28,18 @@
|
|||||||
set -u
|
set -u
|
||||||
|
|
||||||
# Global variables.
|
# Global variables.
|
||||||
CMD_GDB="$(_which gdb)"
|
CMD_GDB="${CMD_GDB:-"$(_which gdb)"}"
|
||||||
CMD_IOSTAT="$(_which iostat)"
|
CMD_IOSTAT="${CMD_IOSTAT:-"$(_which iostat)"}"
|
||||||
CMD_MPSTAT="$(_which mpstat)"
|
CMD_MPSTAT="${CMD_MPSTAT:-"$(_which mpstat)"}"
|
||||||
CMD_MYSQL="$(_which mysql)"
|
CMD_MYSQL="${CMD_MYSQL:-"$(_which mysql)"}"
|
||||||
CMD_MYSQLADMIN="$(_which mysqladmin)"
|
CMD_MYSQLADMIN="${CMD_MYSQLADMIN:-"$(_which mysqladmin)"}"
|
||||||
CMD_OPCONTROL="$(_which opcontrol)"
|
CMD_OPCONTROL="${CMD_OPCONTROL:-"$(_which opcontrol)"}"
|
||||||
CMD_OPREPORT="$(_which opreport)"
|
CMD_OPREPORT="${CMD_OPREPORT:-"$(_which opreport)"}"
|
||||||
CMD_PMAP="$(_which pmap)"
|
CMD_PMAP="${CMD_PMAP:-"$(_which pmap)"}"
|
||||||
CMD_STRACE="$(_which strace)"
|
CMD_STRACE="${CMD_STRACE:-"$(_which strace)"}"
|
||||||
CMD_SYSCTL="$(_which sysctl)"
|
CMD_SYSCTL="${CMD_SYSCTL:-"$(_which sysctl)"}"
|
||||||
CMD_TCPDUMP="$(_which tcpdump)"
|
CMD_TCPDUMP="${CMD_TCPDUMP:-"$(_which tcpdump)"}"
|
||||||
CMD_VMSTAT="$(_which vmstat)"
|
CMD_VMSTAT="${CMD_VMSTAT:-"$(_which vmstat)"}"
|
||||||
|
|
||||||
# Try to find command manually.
|
# Try to find command manually.
|
||||||
[ -z "$CMD_SYSCTL" -a -x "/sbin/sysctl" ] && CMD_SYSCTL="/sbin/sysctl"
|
[ -z "$CMD_SYSCTL" -a -x "/sbin/sysctl" ] && CMD_SYSCTL="/sbin/sysctl"
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
plan 21
|
plan 22
|
||||||
|
|
||||||
TMPFILE="$TEST_PT_TMPDIR/parse-opts-output"
|
TMPFILE="$TEST_PT_TMPDIR/parse-opts-output"
|
||||||
PT_TMPDIR="$TEST_PT_TMPDIR"
|
PT_TMPDIR="$TEST_PT_TMPDIR"
|
||||||
@@ -141,11 +141,33 @@ parse_options "$BIN_DIR/pt-stalk" --run-time 2 -- --defaults-file=/tmp/12345/my.
|
|||||||
|
|
||||||
rm $PT_TMPDIR/collect/*
|
rm $PT_TMPDIR/collect/*
|
||||||
|
|
||||||
|
fake_opcontrol="$PT_TMPDIR/collect/fake_opcontrol"
|
||||||
|
fake_out="$PT_TMPDIR/collect/pt-faked-opcontrol-out"
|
||||||
|
cat <<FAKE_EXEC > "$fake_opcontrol"
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
echo "Faked opcontrol: \$@" > "$fake_out"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
FAKE_EXEC
|
||||||
|
|
||||||
|
chmod +x "$fake_opcontrol"
|
||||||
|
|
||||||
|
CMD_OPCONTROL="$fake_opcontrol"
|
||||||
|
OPT_COLLECT_OPROFILE=1
|
||||||
collect "$PT_TMPDIR/collect" "2011_12_05" > $p-output 2>&1
|
collect "$PT_TMPDIR/collect" "2011_12_05" > $p-output 2>&1
|
||||||
|
CMD_OPCONTROL=""
|
||||||
|
OPT_COLLECT_OPROFILE=""
|
||||||
|
|
||||||
iters=$(cat $p-df | grep -c '^TS ')
|
iters=$(cat $p-df | grep -c '^TS ')
|
||||||
is "$iters" "2" "2 iteration/2s run time"
|
is "$iters" "2" "2 iteration/2s run time"
|
||||||
|
|
||||||
|
is \
|
||||||
|
"$(cat "$fake_out")" \
|
||||||
|
"Faked opcontrol: --init" \
|
||||||
|
"Bug 986847: Can manually set which commands pt-stalk uses"
|
||||||
|
|
||||||
if [ -f "$p-vmstat" ]; then
|
if [ -f "$p-vmstat" ]; then
|
||||||
n=$(awk '/[ ]*[0-9]/ { n += 1 } END { print n }' "$p-vmstat")
|
n=$(awk '/[ ]*[0-9]/ { n += 1 } END { print n }' "$p-vmstat")
|
||||||
is \
|
is \
|
||||||
|
Reference in New Issue
Block a user