From 8bdfcd78381030d36347ac4803121ed2747c1bfc Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Mon, 23 Sep 2013 14:56:30 -0700 Subject: [PATCH] Add 0-30s random delay to send_data(). --- bin/pt-agent | 8 +++++++- t/pt-agent/send_data.t | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/pt-agent b/bin/pt-agent index 042c0271..d46b0bc3 100755 --- a/bin/pt-agent +++ b/bin/pt-agent @@ -7600,6 +7600,7 @@ sub send_data { my $client = $args{client}; # for testing my $entry_links = $args{entry_links}; # for testing my $json = $args{json}; # for testing + my $delay = defined $args{delay} ? $args{delay} : rand(30); # for testing # Can't do anything with the lib dir. Since we haven't started # logging yet, cron should capture this error and email the user. @@ -7637,8 +7638,13 @@ sub send_data { ); $daemon->run(); + # Spool time is +/- [0, 1] minute from API, we randomize that further + # by a few seconds to prevent all agents from sending at exactly + # 00:01:00, 00:00:00, or 00:02:00. + sleep $delay if $delay; + $logger->service("$service_name send"); - my $data_link = $service->links->{data}; + my $data_link = $service->links->{data}; $logger->info("Sending " . scalar @data_files . " data files ($data_link)"); # Connect to Percona, get entry links. diff --git a/t/pt-agent/send_data.t b/t/pt-agent/send_data.t index f17110bb..a8fa9b4d 100644 --- a/t/pt-agent/send_data.t +++ b/t/pt-agent/send_data.t @@ -127,6 +127,7 @@ my $output = output( agent => $agent, log_file => "$tmpdir/log", json => $json, + delay => 0, ), }, );