From d001c6c492175068deec99ebe9a0754e365a6de3 Mon Sep 17 00:00:00 2001 From: Daniel Nichter Date: Fri, 10 May 2013 12:09:16 -0700 Subject: [PATCH] Report simpler client-side failures to send data. Add ts to metadata to making finding failures in server logs easier. --- bin/pt-agent | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/bin/pt-agent b/bin/pt-agent index f2f8fe8e..bb4f18be 100755 --- a/bin/pt-agent +++ b/bin/pt-agent @@ -6190,7 +6190,8 @@ sub run_service { my $data_file = $prefix . '.' . $service->name . '.data'; my $tmp_data_file = "$tmp_dir/$data_file"; my $taskno = 0; - my $metadata = {}; + my $metadata = { ts => $prefix }; + TASK: foreach my $task ( @$tasks ) { PTDEBUG && _d("Task $taskno:", $task->name); @@ -6571,9 +6572,21 @@ sub send_data { json => $json, ); }; - if ( $EVAL_ERROR ) { - chomp $EVAL_ERROR; - _warn("Failed to send $data_file: $EVAL_ERROR"); + if ( my $e = $EVAL_ERROR ) { + if (blessed($e) && $e->isa('Percona::WebAPI::Exception::Request')) { + my $error_msg; + my $content = $client->response->content; + if ( $content ) { + my $error_hashref = decode_json($content); + $error_msg = $error_hashref->{error}; + } + _warn('Error ' . $e->status . " sending $data_file: " + . ($error_msg || '(No error error message from server)')); + } + else { + chomp $e; + _warn("Error sending $data_file: $e"); + } next DATA_FILE; }