mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-26 23:45:44 +00:00
PT-131 Disable QRT plugin in pt-table-checksum
The use of QRT plugin to monitor the health of production worloads cause the QRT data to show massive spikes in latency, even thought the workload is relatively unaffected. Tags: pt-table-checksum See also: PS-235
This commit is contained in:
68
t/pt-table-checksum/pt-131.t
Normal file
68
t/pt-table-checksum/pt-131.t
Normal file
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env perl
|
||||
|
||||
BEGIN {
|
||||
die "The PERCONA_TOOLKIT_BRANCH environment variable is not set.\n"
|
||||
unless $ENV{PERCONA_TOOLKIT_BRANCH} && -d $ENV{PERCONA_TOOLKIT_BRANCH};
|
||||
unshift @INC, "$ENV{PERCONA_TOOLKIT_BRANCH}/lib";
|
||||
};
|
||||
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
use English qw(-no_match_vars);
|
||||
use Test::More;
|
||||
|
||||
use PerconaTest;
|
||||
use Sandbox;
|
||||
use SqlModes;
|
||||
require "$trunk/bin/pt-table-checksum";
|
||||
|
||||
my $dp = new DSNParser(opts=>$dsn_opts);
|
||||
my $sb = new Sandbox(basedir => '/tmp', DSNParser => $dp);
|
||||
my $dbh = $sb->get_dbh_for('master');
|
||||
my $sb_version = VersionParser->new($dbh);
|
||||
my $rows = $dbh->selectall_hashref("SHOW VARIABLES LIKE '%version%'", ['variable_name']);
|
||||
|
||||
if ( !$dbh ) {
|
||||
plan skip_all => 'Cannot connect to sandbox master';
|
||||
} elsif ( $sb_version < '5.7.21' || !($rows->{version_comment}->{value} =~ m/percona server/i) ) {
|
||||
plan skip_all => 'This test file needs Percona Server 5.7.21.21+';
|
||||
} else {
|
||||
plan tests => 3;
|
||||
}
|
||||
|
||||
eval {
|
||||
$dbh->selectrow_arrayref('SELECT @@query_response_time_session_stats' );
|
||||
};
|
||||
if ($EVAL_ERROR) {
|
||||
$sb->load_file('master', 't/pt-table-checksum/samples/pt-131.sql');
|
||||
}
|
||||
# The sandbox servers run with lock_wait_timeout=3 and it is not dynamic
|
||||
# so we need to specify --set-vars innodb_lock_wait_timeout=3 else the tool will die.
|
||||
# And --max-load "" prevents waiting for status variables.
|
||||
my $master_dsn = $sb->dsn_for('master');
|
||||
my $output;
|
||||
my $exit_status;
|
||||
$ENV{PTDEBUG} = 1;
|
||||
|
||||
my $cmd ="PTDEBUG=1 $trunk/bin/pt-table-checksum $master_dsn --disable-qrt-plugin 2>&1";
|
||||
|
||||
$output = `$cmd`;
|
||||
like (
|
||||
$output,
|
||||
qr/Restoring qrt plugin state/,
|
||||
"QRT plugin status has been restored",
|
||||
);
|
||||
|
||||
like (
|
||||
$output,
|
||||
qr/Disabling qrt plugin on master server/,
|
||||
"QRT plugin has been disabled",
|
||||
);
|
||||
delete $ENV{PTDEBUG};
|
||||
|
||||
# #############################################################################
|
||||
# Done.
|
||||
# #############################################################################
|
||||
$sb->wipe_clean($dbh);
|
||||
ok($sb->ok(), "Sandbox servers") or BAIL_OUT(__FILE__ . " broke the sandbox");
|
||||
exit;
|
16
t/pt-table-checksum/samples/pt-131.sql
Normal file
16
t/pt-table-checksum/samples/pt-131.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
-- See https://www.percona.com/doc/percona-server/LATEST/diagnostics/response_time_distribution.html
|
||||
|
||||
-- This plugin is used for gathering statistics.
|
||||
INSTALL PLUGIN QUERY_RESPONSE_TIME_AUDIT SONAME 'query_response_time.so';
|
||||
|
||||
-- This plugin provides the interface (QUERY_RESPONSE_TIME) to output gathered statistics.
|
||||
INSTALL PLUGIN QUERY_RESPONSE_TIME SONAME 'query_response_time.so';
|
||||
|
||||
-- This plugin provides the interface (QUERY_RESPONSE_TIME_READ) to output gathered statistics.
|
||||
INSTALL PLUGIN QUERY_RESPONSE_TIME_READ SONAME 'query_response_time.so';
|
||||
|
||||
-- This plugin provides the interface (QUERY_RESPONSE_TIME_WRITE) to output gathered statistics.
|
||||
INSTALL PLUGIN QUERY_RESPONSE_TIME_WRITE SONAME 'query_response_time.so';
|
||||
|
||||
-- Start collecting query time metrics,
|
||||
SET GLOBAL query_response_time_stats = on;
|
Reference in New Issue
Block a user