Monitoring platform for keeping systems up and running at all times.
Full stack visibility across the entire stack.
Detect and resolve any incident in record time.
Conform to industry best practices.
Error handling with Node.js on AWS Lambda becomes incredibly simple with Dashbird. We detect all errors that fall into the next four categories.
Check out the example below.
exports.handler = async (event) => { const err = new Error('I am a dog') throw err }
When this lambda function is invoked, it will notify AWS Lambda that function execution completed with an error and passed the error information to AWS Lambda. AWS Lambda sends the error information to AWS CloudWatch where the logs are stored. Developers don’t need to attach any agents inside their code. This means, to start using Dashbird, you don’t need to do any code changes whatsoever!
In addition, with each error, you get the context. Logs of the whole invocation, along with memory usage, duration, and other meaningful metrics.
On top of that, Dashbird groups similar errors, making it possible to estimate the scope of the problem and make debugging easier. For example, it might help to better observe the problem if you find some commonalities in the executions.
Here’s how a Node.js error looks like in Dashbird.
Got to love those stack traces!
You can find the complete list of Node.js errors here. Errors are parsed out automatically in Dashbird, and include a rundown of traceback and logs of the specific invocation. Per function errors are visible on a dedicated list, shown below.
All calls made to AWS Lambda must complete execution within 15 minutes. The default timeout is 3 seconds, but you can set the timeout to any value between one second and 15 minutes.
Normally, error handling agents are unable to catch timeout errors, because the execution is halted on an upper level. Dashbird, however, reports timeouts like any other type of error.
Timeouts are expressed in Lambda logs in the following way.
REPORT RequestId: 41a10717-e9af-11e7-892c-5bb1a4054ed6 Duration: 300085.71 ms Billed Duration: 300000 ms Memory Size: 128 MB Max Memory Used: 92 MB 2017-12-25T20:12:38.950Z 41a10717-e9af-11e7-892c-5bb1a4054ed6 Task timed out after 300.09 seconds
We make sure to tag configuration errors differently from regular errors so you can debug issues easier.
Another scenario for errors in AWS Lambda is when you have a missing module included in your function code. In other types of programs, this isn’t a very common occurence since a developer would catch that right away. However, with Lambdas, the container is started up on demand, masking the problem until the user encounters it.
What’s important to note here, is that configuration errors are also not reported with agents, since the code execution does not reach the handler.
Here’s how it looks like:
START RequestId: 89342c24-91a1-11e8-b8ce-2981c530381f Version: $LATEST Unable to import module 'app': Error at Function.Module._resolveFilename (module.js:547:15) at Function.Module._load (module.js:474:25) at Module.require (module.js:596:17) at require (internal/module.js:11:18) at Object.<anonymous> (/var/task/app.js:1:79) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) REPORT RequestId: 89342c24-91a1-11e8-b8ce-2981c530381f Duration: 3.98 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 20 MB
Handler is a function in your code that is invoked by AWS Lambda when your service is executed. If the handler name provided in the Lambda configuration is different from the function in your code, this error will be produced upon Lambda execution and caught by Dashbird.
START RequestId: 5da69de5-91a2-11e8-8a9a-6d1e6b337909 Version: $LATEST Unable to import module 'app': Error at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) REPORT RequestId: 5da69de5-91a2-11e8-8a9a-6d1e6b337909 Duration: 0.53 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 21 MB
###AWS Lambda errors
We aim to improve Dashbird every day and user feedback is extremely important for that, so please let us know if you have any feedback about our features and error handling! We would really appreciate it!
Can’t find what you’re looking for? We’d love to help. Send us a message through the chat bubble or email us.
No results found
Dashbird is a monitoring, debugging and intelligence platform designed to help serverless developers build, operate, improve, and scale their modern cloud applications on AWS environment securely and with ease.
Dashbird gives us a simple and easy to use tool to have peace of mind and know that all of our Serverless functions are running correctly. We are instantly aware now if there’s a problem. We love the fact that we have enough information in the Slack notification itself to take appropriate action immediately and know exactly where the issue occurred.
Thanks to Dashbird the time to discover the occurrence of an issue reduced from 2-4 hours to a matter of seconds or minutes. It also means that hundreds of dollars are saved every month.
Great onboarding: it takes just a couple of minutes to connect an AWS account to an organization in Dashbird. The UI is clean and gives a good overview of what is happening with the Lambdas and API Gateways in the account.
I mean, it is just extremely time-saving. It’s so efficient! I don’t think it’s an exaggeration or dramatic to say that Dashbird has been a lifesaver for us.
Dashbird provides an easier interface to monitor and debug problems with our Lambdas. Relevant logs are simple to find and view. Dashbird’s support has been good, and they take product suggestions with grace.
Great UI. Easy to navigate through CloudWatch logs. Simple setup.
Dashbird helped us refine the size of our Lambdas, resulting in significantly reduced costs. We have Dashbird alert us in seconds via email when any of our functions behaves abnormally. Their app immediately makes the cause and severity of errors obvious.