Save the config file itself, not just its path.

This commit is contained in:
Brian Fraser fraserb@gmail.com
2012-03-30 20:18:39 -03:00
parent af5d9d7e90
commit 978b236985
14 changed files with 177 additions and 84 deletions

View File

@@ -911,10 +911,12 @@ collect_mysql_info () {
"SELECT LEFT(NOW() - INTERVAL ${uptime} SECOND, 16)")" "SELECT LEFT(NOW() - INTERVAL ${uptime} SECOND, 16)")"
local port="$(get_var port "$dir/mysql-variables")" local port="$(get_var port "$dir/mysql-variables")"
local cnf_file=$(find_my_cnf_file "$dir/mysqld-instances" ${port}); local cnf_file="$(find_my_cnf_file "$dir/mysqld-instances" ${port})"
cat "$cnf_file" > "$dir/mysql-config-file"
echo "pt-summary-internal-current_time $current_time" >> "$dir/mysql-variables" echo "pt-summary-internal-current_time $current_time" >> "$dir/mysql-variables"
echo "pt-summary-internal-Config_File $cnf_file" >> "$dir/mysql-variables" echo "pt-summary-internal-Config_File_path $cnf_file" >> "$dir/mysql-variables"
collect_internal_vars >> "$dir/mysql-variables" collect_internal_vars >> "$dir/mysql-variables"
if [ -n "${OPT_DATABASES}" ]; then if [ -n "${OPT_DATABASES}" ]; then
@@ -2139,10 +2141,10 @@ report_mysql_summary () {
section_noteworthy_variables "$dir/mysql-variables" section_noteworthy_variables "$dir/mysql-variables"
section Configuration_File section Configuration_File
local cnf_file="$(get_var "pt-summary-internal-Config_File" "$dir/mysql-variables")" local cnf_file="$(get_var "pt-summary-internal-Config_File_path" "$dir/mysql-variables")"
if [ -n "${cnf_file}" ]; then if [ -n "${cnf_file}" ]; then
name_val "Config File" "${cnf_file}" name_val "Config File" "${cnf_file}"
pretty_print_cnf_file "${cnf_file}" pretty_print_cnf_file "$data_dir/mysql-config-file"
else else
name_val "Config File" "Cannot autodetect or find, giving up" name_val "Config File" "Cannot autodetect or find, giving up"
fi fi

View File

@@ -213,11 +213,13 @@ collect_mysql_info () {
"SELECT LEFT(NOW() - INTERVAL ${uptime} SECOND, 16)")" "SELECT LEFT(NOW() - INTERVAL ${uptime} SECOND, 16)")"
local port="$(get_var port "$dir/mysql-variables")" local port="$(get_var port "$dir/mysql-variables")"
local cnf_file=$(find_my_cnf_file "$dir/mysqld-instances" ${port}); local cnf_file="$(find_my_cnf_file "$dir/mysqld-instances" ${port})"
cat "$cnf_file" > "$dir/mysql-config-file"
# TODO: Do these require a file of their own? # TODO: Do these require a file of their own?
echo "pt-summary-internal-current_time $current_time" >> "$dir/mysql-variables" echo "pt-summary-internal-current_time $current_time" >> "$dir/mysql-variables"
echo "pt-summary-internal-Config_File $cnf_file" >> "$dir/mysql-variables" echo "pt-summary-internal-Config_File_path $cnf_file" >> "$dir/mysql-variables"
collect_internal_vars >> "$dir/mysql-variables" collect_internal_vars >> "$dir/mysql-variables"
if [ -n "${OPT_DATABASES}" ]; then if [ -n "${OPT_DATABASES}" ]; then

View File

@@ -1136,6 +1136,7 @@ report_mysql_summary () {
# ######################################################################## # ########################################################################
# Plugins # Plugins
# ######################################################################## # ########################################################################
# TODO: what would be good is to show nonstandard plugins here.
section Plugins section Plugins
name_val "InnoDB compression" "$(get_plugin_status "$dir/mysql-plugins" "INNODB_CMP")" name_val "InnoDB compression" "$(get_plugin_status "$dir/mysql-plugins" "INNODB_CMP")"
@@ -1239,6 +1240,12 @@ report_mysql_summary () {
else else
name_val "Partitioning" "No" name_val "Partitioning" "No"
fi fi
if grep -e 'ENGINE=InnoDB.*ROW_FORMAT' \
-e 'ENGINE=InnoDB.*KEY_BLOCK_SIZE' "$dir/mysqldump" > /dev/null; then
name_val "InnoDB Compression" "Yes"
else
name_val "InnoDB Compression" "No"
fi
fi fi
local ssl="$(get_var Ssl_accepts "$dir/mysql-status")" local ssl="$(get_var Ssl_accepts "$dir/mysql-status")"
if [ -n "$ssl" -a "${ssl:-0}" -gt 0 ]; then if [ -n "$ssl" -a "${ssl:-0}" -gt 0 ]; then
@@ -1338,10 +1345,10 @@ report_mysql_summary () {
# If there is a my.cnf in a standard location, see if we can pretty-print it. # If there is a my.cnf in a standard location, see if we can pretty-print it.
# ######################################################################## # ########################################################################
section Configuration_File section Configuration_File
local cnf_file="$(get_var "pt-summary-internal-Config_File" "$dir/mysql-variables")" local cnf_file="$(get_var "pt-summary-internal-Config_File_path" "$dir/mysql-variables")"
if [ -n "${cnf_file}" ]; then if [ -n "${cnf_file}" ]; then
name_val "Config File" "${cnf_file}" name_val "Config File" "${cnf_file}"
pretty_print_cnf_file "${cnf_file}" pretty_print_cnf_file "$dir/mysql-config-file"
else else
name_val "Config File" "Cannot autodetect or find, giving up" name_val "Config File" "Cannot autodetect or find, giving up"
fi fi

View File

@@ -25,7 +25,7 @@ local $ENV{PTDEBUG} = "";
my $dir = tempdir( "percona-testXXXXXXXX", CLEANUP => 1 ); my $dir = tempdir( "percona-testXXXXXXXX", CLEANUP => 1 );
`$trunk/bin/$tool --sleep 1 --save-samples $dir`; `$trunk/bin/$tool --sleep 1 --save-samples $dir -- --defaults-file=/tmp/12345/my.sandbox.cnf`;
ok( ok(
-e $dir, -e $dir,
@@ -36,7 +36,7 @@ my @files = glob("$dir/*");
is( is(
scalar @files, scalar @files,
12, 13,
"And leaves all files in there" "And leaves all files in there"
); );
@@ -46,7 +46,7 @@ undef($dir);
# --databases # --databases
# #
my $out = `$trunk/bin/$tool --sleep 1 --databases mysql 2>/dev/null`; my $out = `$trunk/bin/$tool --sleep 1 --databases mysql 2>/dev/null -- --defaults-file=/tmp/12345/my.sandbox.cnf`;
like( like(
$out, $out,
@@ -60,7 +60,7 @@ for my $i (2..4) {
no_diff( no_diff(
sub { sub {
local $ENV{_NO_FALSE_NEGATIVES} = 1; local $ENV{_NO_FALSE_NEGATIVES} = 1;
print `$trunk/bin/$tool --read-samples $trunk/t/pt-mysql-summary/samples/temp00$i | tail -n+3 | perl -wlnpe 's/Skipping schema analysis.*/Skipping schema analysis/'` print `$trunk/bin/$tool --read-samples $trunk/t/pt-mysql-summary/samples/temp00$i -- --defaults-file=/tmp/12345/my.sandbox.cnf | tail -n+3 | perl -wlnpe 's/Skipping schema analysis.*/Skipping schema analysis/'`
}, },
"t/pt-mysql-summary/samples/expected_output_temp00$i.txt", "t/pt-mysql-summary/samples/expected_output_temp00$i.txt",
), ),

View File

@@ -250,40 +250,29 @@ log_queries_not_using_indexes | OFF
Config File | /etc/mysql/my.cnf Config File | /etc/mysql/my.cnf
[client] [client]
port = 3306 user = msandbox
socket = /var/run/mysqld/mysqld.sock password = msandbox
port = 12345
[mysqld_safe] socket = /tmp/12345/mysql_sandbox12345.sock
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld] [mysqld]
user = mysql port = 12345
socket = /var/run/mysqld/mysqld.sock socket = /tmp/12345/mysql_sandbox12345.sock
port = 3306 pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /usr basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /var/lib/mysql datadir = /tmp/12345/data
tmpdir = /tmp key_buffer_size = 16M
skip-external-locking innodb_buffer_pool_size = 16M
bind-address = 127.0.0.1 innodb_data_home_dir = /tmp/12345/data
key_buffer = 16M innodb_log_group_home_dir = /tmp/12345/data
max_allowed_packet = 16M innodb_data_file_path = ibdata1:10M:autoextend
thread_stack = 192K innodb_log_file_size = 5M
thread_cache_size = 8 log-bin = mysql-bin
myisam-recover = BACKUP relay_log = mysql-relay-bin
query_cache_limit = 1M log_slave_updates
query_cache_size = 16M server-id = 12345
log_error = /var/log/mysql/error.log report-host = 127.0.0.1
expire_logs_days = 10 report-port = 12345
max_binlog_size = 100M log-error = mysqld.log
innodb_lock_wait_timeout = 3
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
[isamchk]
key_buffer = 16M
# The End #################################################### # The End ####################################################

View File

@@ -231,40 +231,29 @@ log_queries_not_using_indexes | OFF
Config File | /etc/mysql/my.cnf Config File | /etc/mysql/my.cnf
[client] [client]
port = 3306 user = msandbox
socket = /var/run/mysqld/mysqld.sock password = msandbox
port = 12345
[mysqld_safe] socket = /tmp/12345/mysql_sandbox12345.sock
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld] [mysqld]
user = mysql port = 12345
socket = /var/run/mysqld/mysqld.sock socket = /tmp/12345/mysql_sandbox12345.sock
port = 3306 pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /usr basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /var/lib/mysql datadir = /tmp/12345/data
tmpdir = /tmp key_buffer_size = 16M
skip-external-locking innodb_buffer_pool_size = 16M
bind-address = 127.0.0.1 innodb_data_home_dir = /tmp/12345/data
key_buffer = 16M innodb_log_group_home_dir = /tmp/12345/data
max_allowed_packet = 16M innodb_data_file_path = ibdata1:10M:autoextend
thread_stack = 192K innodb_log_file_size = 5M
thread_cache_size = 8 log-bin = mysql-bin
myisam-recover = BACKUP relay_log = mysql-relay-bin
query_cache_limit = 1M log_slave_updates
query_cache_size = 16M server-id = 12345
log_error = /var/log/mysql/error.log report-host = 127.0.0.1
expire_logs_days = 10 report-port = 12345
max_binlog_size = 100M log-error = mysqld.log
innodb_lock_wait_timeout = 3
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[mysql]
[isamchk]
key_buffer = 16M
# The End #################################################### # The End ####################################################

View File

@@ -0,0 +1,26 @@
[client]
user = msandbox
password = msandbox
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
[mysqld]
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /tmp/12345/data
key_buffer_size = 16M
innodb_buffer_pool_size = 16M
innodb_data_home_dir = /tmp/12345/data
innodb_log_group_home_dir = /tmp/12345/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_file_size = 5M
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates
server-id = 12345
report-host = 127.0.0.1
report-port = 12345
log-error = mysqld.log
innodb_lock_wait_timeout = 3

View File

@@ -363,7 +363,7 @@ version_compile_machine i686
version_compile_os Linux version_compile_os Linux
wait_timeout 28800 wait_timeout 28800
pt-summary-internal-current_time 2012-03-22 18:50 pt-summary-internal-current_time 2012-03-22 18:50
pt-summary-internal-Config_File /etc/mysql/my.cnf pt-summary-internal-Config_File_path /etc/mysql/my.cnf
pt-summary-internal-now 2012-03-23 21:05:32 pt-summary-internal-now 2012-03-23 21:05:32
pt-summary-internal-user hugmeir@localhost pt-summary-internal-user hugmeir@localhost
pt-summary-internal-FNV_64 Unknown pt-summary-internal-FNV_64 Unknown

View File

@@ -0,0 +1,26 @@
[client]
user = msandbox
password = msandbox
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
[mysqld]
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /tmp/12345/data
key_buffer_size = 16M
innodb_buffer_pool_size = 16M
innodb_data_home_dir = /tmp/12345/data
innodb_log_group_home_dir = /tmp/12345/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_file_size = 5M
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates
server-id = 12345
report-host = 127.0.0.1
report-port = 12345
log-error = mysqld.log
innodb_lock_wait_timeout = 3

View File

@@ -275,7 +275,7 @@ warning_count 0
internal::nice_of_1529 0 internal::nice_of_1529 0
internal::oom_of_1529 0 internal::oom_of_1529 0
pt-summary-internal-current_time 2012-03-27 16:15 pt-summary-internal-current_time 2012-03-27 16:15
pt-summary-internal-Config_File /tmp/12345/my.sandbox.cnf pt-summary-internal-Config_File_path /tmp/12345/my.sandbox.cnf
pt-summary-internal-mysql_executable /home/vagrant/mysql-5.1.49-barebones/bin/mysql pt-summary-internal-mysql_executable /home/vagrant/mysql-5.1.49-barebones/bin/mysql
pt-summary-internal-now 2012-03-27 16:33:46 pt-summary-internal-now 2012-03-27 16:33:46
pt-summary-internal-user msandbox@% pt-summary-internal-user msandbox@%

View File

@@ -0,0 +1,26 @@
[client]
user = msandbox
password = msandbox
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
[mysqld]
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /tmp/12345/data
key_buffer_size = 16M
innodb_buffer_pool_size = 16M
innodb_data_home_dir = /tmp/12345/data
innodb_log_group_home_dir = /tmp/12345/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_file_size = 5M
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates
server-id = 12345
report-host = 127.0.0.1
report-port = 12345
log-error = mysqld.log
innodb_lock_wait_timeout = 3

View File

@@ -275,7 +275,7 @@ warning_count 0
internal::nice_of_2837 0 internal::nice_of_2837 0
internal::oom_of_2837 0 internal::oom_of_2837 0
pt-summary-internal-current_time 2012-03-27 09:09 pt-summary-internal-current_time 2012-03-27 09:09
pt-summary-internal-Config_File /tmp/12345/my.sandbox.cnf pt-summary-internal-Config_File_path /tmp/12345/my.sandbox.cnf
pt-summary-internal-mysql_executable /usr/bin/mysql pt-summary-internal-mysql_executable /usr/bin/mysql
pt-summary-internal-now 2012-03-27 09:16:44 pt-summary-internal-now 2012-03-27 09:16:44
pt-summary-internal-user msandbox@% pt-summary-internal-user msandbox@%

View File

@@ -0,0 +1,26 @@
[client]
user = msandbox
password = msandbox
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
[mysqld]
port = 12345
socket = /tmp/12345/mysql_sandbox12345.sock
pid-file = /tmp/12345/data/mysql_sandbox12345.pid
basedir = /home/hugmeir/mysql5/mysqlbrew/mysqls/Percona-Server-5.1/
datadir = /tmp/12345/data
key_buffer_size = 16M
innodb_buffer_pool_size = 16M
innodb_data_home_dir = /tmp/12345/data
innodb_log_group_home_dir = /tmp/12345/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_file_size = 5M
log-bin = mysql-bin
relay_log = mysql-relay-bin
log_slave_updates
server-id = 12345
report-host = 127.0.0.1
report-port = 12345
log-error = mysqld.log
innodb_lock_wait_timeout = 3

View File

@@ -277,7 +277,7 @@ warning_count 0
pt-summary-internal-now 2012-02-22 06:24:23 pt-summary-internal-now 2012-02-22 06:24:23
pt-summary-internal-current_time 2012-02-22 06:21 pt-summary-internal-current_time 2012-02-22 06:21
pt-summary-internal-user pt-summary-internal-user
pt-summary-internal-Config_File /etc/mysql/my.cnf pt-summary-internal-Config_File_path /etc/mysql/my.cnf
pt-summary-internal-FNV_64 Unknown pt-summary-internal-FNV_64 Unknown
pt-summary-internal-trigger_count 0 pt-summary-internal-trigger_count 0
pt-summary-internal-symbols No pt-summary-internal-symbols No