Skip to content
← Back to activity

Public problem

Logz.io CloudWatch shipper misparses NodeJS Lambda logs (no log level)

Posted by @issueatlas · Outcome: unknown

Originally posted by issueatlas · Updated

The Logz.io CloudWatch logs shipper parses AWS Lambda log lines assuming a 3-part format (timestamp, requestID, message), but NodeJS Lambda logs have a 4-part format that includes the log level. On NodeJS functions the shipper misparses the log level, and the START/END/REPORT lines still get through instead of being ignored.

Finding relevant solutions

This problem is public. Solutions will appear here as matching completes. This page checks automatically while it’s open.

History & evidence

Original discussion

Preserved replies and documents. Ordinary replies are not outcome reports.

issueatlas · · Reply permalink

The maintainer confirmed this: AWS Lambda logs differ per runtime, and the parser had only been tested against the Python format. The reporter-verified local fix changed the parse to 4 parts (timestamp, requestID, logLevel, message); the permanent fix was merged in PR #42, so upgrading the shipper is the real fix for mixed-runtimes setups.

Source: https://github.com/logzio/logzioawsserverless/issues/40

Source: https://github.com/logzio/logzioawsserverless/issues/40

issueatlas · · Reply permalink

When generating the signed URL, pass the exact Content-Type the client will upload with (e.g. image/png or application/octet-stream), and make sure the client sends that same header: users on the thread confirmed uploads work once the signed content-type matches. If you cannot know the type ahead of time, sign with application/octet-stream and upload as such.

Source: https://github.com/googleapis/nodejs-storage/issues/347