Skip to content

Commit 767914c

Browse files
authored
Improve error messages in s3 input (#18824) (#18837)
(cherry picked from commit f6bd8c6)
1 parent e27d1f0 commit 767914c

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

x-pack/filebeat/input/s3/input.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ func handleSQSMessage(m sqs.Message) ([]s3Info, error) {
364364
// Unescape substrings from s3 log name. For example, convert "%3D" back to "="
365365
filename, err := url.QueryUnescape(record.S3.object.Key)
366366
if err != nil {
367-
return nil, errors.Wrapf(err, "url.QueryUnescape failed")
367+
return nil, errors.Wrapf(err, "url.QueryUnescape failed for '%s'", record.S3.object.Key)
368368
}
369369

370370
s3Infos = append(s3Infos, s3Info{
@@ -419,17 +419,17 @@ func (p *s3Input) createEventsFromS3Info(svc s3iface.ClientAPI, info s3Info, s3C
419419
// If the SDK can determine the request or retry delay was canceled
420420
// by a context the ErrCodeRequestCanceled error will be returned.
421421
if awsErr.Code() == awssdk.ErrCodeRequestCanceled {
422-
err = errors.Wrap(err, "S3 GetObjectRequest canceled")
422+
err = errors.Wrapf(err, "S3 GetObjectRequest canceled for '%s' from S3 bucket '%s'", info.key, info.name)
423423
p.logger.Error(err)
424424
return err
425425
}
426426

427427
if awsErr.Code() == "NoSuchKey" {
428-
p.logger.Warn("Cannot find s3 file")
428+
p.logger.Warnf("Cannot find s3 file '%s' from S3 bucket '%s'", info.key, info.name)
429429
return nil
430430
}
431431
}
432-
return errors.Wrap(err, "S3 GetObjectRequest failed")
432+
return errors.Wrapf(err, "S3 GetObjectRequest failed for '%s' from S3 bucket '%s'", info.key, info.name)
433433
}
434434

435435
defer resp.Body.Close()
@@ -448,7 +448,7 @@ func (p *s3Input) createEventsFromS3Info(svc s3iface.ClientAPI, info s3Info, s3C
448448
decoder := json.NewDecoder(reader)
449449
err := p.decodeJSONWithKey(decoder, objectHash, info, s3Ctx)
450450
if err != nil {
451-
err = errors.Wrap(err, "decodeJSONWithKey failed")
451+
err = errors.Wrapf(err, "decodeJSONWithKey failed for '%s' from S3 bucket '%s'", info.key, info.name)
452452
p.logger.Error(err)
453453
return err
454454
}
@@ -459,7 +459,7 @@ func (p *s3Input) createEventsFromS3Info(svc s3iface.ClientAPI, info s3Info, s3C
459459
if (resp.ContentType != nil && *resp.ContentType == "application/x-gzip") || strings.HasSuffix(info.key, ".gz") {
460460
gzipReader, err := gzip.NewReader(resp.Body)
461461
if err != nil {
462-
err = errors.Wrap(err, "gzip.NewReader failed")
462+
err = errors.Wrapf(err, "gzip.NewReader failed for '%s' from S3 bucket '%s'", info.key, info.name)
463463
p.logger.Error(err)
464464
return err
465465
}
@@ -519,36 +519,37 @@ func (p *s3Input) decodeJSONWithKey(decoder *json.Decoder, objectHash string, s3
519519
// get logs from expand_event_list_from_field
520520
textValues, ok := jsonFields[p.config.ExpandEventListFromField]
521521
if !ok {
522-
err = errors.Wrapf(err, fmt.Sprintf("key '%s' not found", p.config.ExpandEventListFromField))
522+
err = errors.Wrapf(err, "key '%s' not found", p.config.ExpandEventListFromField)
523523
p.logger.Error(err)
524524
return err
525525
}
526526

527527
for _, v := range textValues {
528528
err := p.convertJSONToEvent(v, offset, objectHash, s3Info, s3Ctx)
529529
if err != nil {
530-
err = errors.Wrap(err, "convertJSONToEvent failed")
530+
err = errors.Wrapf(err, "convertJSONToEvent failed for '%s' from S3 bucket '%s'", s3Info.key, s3Info.name)
531531
p.logger.Error(err)
532532
return err
533533
}
534534
}
535535
} else if err != nil {
536536
// decode json failed, skip this log file
537-
p.logger.Warnf(fmt.Sprintf("Decode json failed for '%s', skipping this file: %s", s3Info.key, err))
537+
err = errors.Wrapf(err, "decode json failed for '%s' from S3 bucket '%s', skipping this file", s3Info.key, s3Info.name)
538+
p.logger.Warn(err)
538539
return nil
539540
}
540541

541542
textValues, ok := jsonFields[p.config.ExpandEventListFromField]
542543
if !ok {
543-
err = errors.Wrapf(err, fmt.Sprintf("Key '%s' not found", p.config.ExpandEventListFromField))
544+
err = errors.Wrapf(err, "Key '%s' not found", p.config.ExpandEventListFromField)
544545
p.logger.Error(err)
545546
return err
546547
}
547548

548549
for _, v := range textValues {
549550
err := p.convertJSONToEvent(v, offset, objectHash, s3Info, s3Ctx)
550551
if err != nil {
551-
err = errors.Wrapf(err, fmt.Sprintf("Key '%s' not found", p.config.ExpandEventListFromField))
552+
err = errors.Wrapf(err, "Key '%s' not found", p.config.ExpandEventListFromField)
552553
p.logger.Error(err)
553554
return err
554555
}
@@ -564,7 +565,7 @@ func (p *s3Input) convertJSONToEvent(jsonFields interface{}, offset int, objectH
564565

565566
err = p.forwardEvent(event)
566567
if err != nil {
567-
err = errors.Wrap(err, fmt.Sprintf("forwardEvent failed"))
568+
err = errors.Wrap(err, "forwardEvent failed")
568569
p.logger.Error(err)
569570
return err
570571
}
@@ -596,7 +597,7 @@ func (p *s3Input) deleteMessage(queueURL string, messagesReceiptHandle string, s
596597
if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == awssdk.ErrCodeRequestCanceled {
597598
return nil
598599
}
599-
return errors.Wrap(err, "SQS DeleteMessageRequest failed")
600+
return errors.Wrapf(err, "SQS DeleteMessageRequest failed in queue %s", queueURL)
600601
}
601602
return nil
602603
}

0 commit comments

Comments
 (0)