diff --git a/tools/lambda-promtail/lambda-promtail/cw.go b/tools/lambda-promtail/lambda-promtail/cw.go index 3225e32cb2..7632a7e1a3 100644 --- a/tools/lambda-promtail/lambda-promtail/cw.go +++ b/tools/lambda-promtail/lambda-promtail/cw.go @@ -31,19 +31,24 @@ func parseCWEvent(ctx context.Context, b *batch, ev *events.CloudwatchLogsEvent) for _, event := range data.LogEvents { timestamp := time.UnixMilli(event.Timestamp) - b.add(ctx, entry{labels, logproto.Entry{ + if err := b.add(ctx, entry{labels, logproto.Entry{ Line: event.Message, Timestamp: timestamp, - }}) + }}); err != nil { + return err + } } return nil } func processCWEvent(ctx context.Context, ev *events.CloudwatchLogsEvent) error { - batch, _ := newBatch(ctx) + batch, err := newBatch(ctx) + if err != nil { + return err + } - err := parseCWEvent(ctx, batch, ev) + err = parseCWEvent(ctx, batch, ev) if err != nil { return err } @@ -52,5 +57,6 @@ func processCWEvent(ctx context.Context, ev *events.CloudwatchLogsEvent) error { if err != nil { return err } + return nil } diff --git a/tools/lambda-promtail/lambda-promtail/main.go b/tools/lambda-promtail/lambda-promtail/main.go index 9aca2126f9..e6690ed954 100644 --- a/tools/lambda-promtail/lambda-promtail/main.go +++ b/tools/lambda-promtail/lambda-promtail/main.go @@ -5,12 +5,13 @@ import ( "encoding/json" "errors" "fmt" - "github.com/prometheus/common/model" "net/url" "os" "strconv" "strings" + "github.com/prometheus/common/model" + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" "github.com/aws/aws-sdk-go-v2/service/s3" @@ -136,11 +137,11 @@ func handler(ctx context.Context, ev map[string]interface{}) error { return err } - switch event.(type) { + switch evt := event.(type) { case *events.S3Event: - return processS3Event(ctx, event.(*events.S3Event)) + return processS3Event(ctx, evt) case *events.CloudwatchLogsEvent: - return processCWEvent(ctx, event.(*events.CloudwatchLogsEvent)) + return processCWEvent(ctx, evt) } return err diff --git a/tools/lambda-promtail/lambda-promtail/promtail.go b/tools/lambda-promtail/lambda-promtail/promtail.go index 64d1348b76..9df78fb61e 100644 --- a/tools/lambda-promtail/lambda-promtail/promtail.go +++ b/tools/lambda-promtail/lambda-promtail/promtail.go @@ -45,8 +45,9 @@ func newBatch(ctx context.Context, entries ...entry) (*batch, error) { } for _, entry := range entries { - err := b.add(ctx, entry) - return b, err + if err := b.add(ctx, entry); err != nil { + return nil, err + } } return b, nil diff --git a/tools/lambda-promtail/lambda-promtail/s3.go b/tools/lambda-promtail/lambda-promtail/s3.go index 0ccb714514..2d2ba59906 100644 --- a/tools/lambda-promtail/lambda-promtail/s3.go +++ b/tools/lambda-promtail/lambda-promtail/s3.go @@ -75,7 +75,6 @@ func parseS3Log(ctx context.Context, b *batch, labels map[string]string, obj io. ls = applyExtraLabels(ls) for scanner.Scan() { - i := 0 log_line := scanner.Text() match := timestampRegex.FindStringSubmatch(log_line) @@ -84,11 +83,12 @@ func parseS3Log(ctx context.Context, b *batch, labels map[string]string, obj io. return err } - b.add(ctx, entry{ls, logproto.Entry{ + if err := b.add(ctx, entry{ls, logproto.Entry{ Line: log_line, Timestamp: timestamp, - }}) - i++ + }}); err != nil { + return err + } } return nil @@ -114,8 +114,10 @@ func getLabels(record events.S3EventRecord) (map[string]string, error) { } func processS3Event(ctx context.Context, ev *events.S3Event) error { - - batch, _ := newBatch(ctx) + batch, err := newBatch(ctx) + if err != nil { + return err + } for _, record := range ev.Records { labels, err := getLabels(record) @@ -135,7 +137,7 @@ func processS3Event(ctx context.Context, ev *events.S3Event) error { } - err := sendToPromtail(ctx, batch) + err = sendToPromtail(ctx, batch) if err != nil { return err }