Traditionally in white-box monitoring, error reporting has been achieved with third-party libraries that catch and communicate failures to external services and notify developers whenever a problem occurs. I’m here to argue that this can be achieved with less effort, no agents, and without performance overhead for managed services.
In fact, there are a lot of reasons why you shouldn’t use classical error-reporting tools in AWS Lambda. Most critical of them is that error-handling libraries in the code are blind to Lambda-specific failures, such as timeouts, wrongly configured packages, and out-of-memory failures. In addition, there is an issue with coverage – implementing error reporting for each function is a lot of work. Whenever you add a service to your infrastructure, you must go through setting up error tracking and monitoring for it, and forgetting to do it can result in blind spots in your system.