Know what your functions are doing, a better way to monitor serverless application.

There are plenty of sophisticated tools to monitor traditional application performance, but serverless is still picking up. Serverless architecture is different, so you need a tool which is made for that. These tools tightly integrate with the serverless runtime platform to collect essential data for better visibility and debugging.

They help you to develop your application faster and confidently. If are you new to Serverless then you may consider checking this introduction article or consider taking an online course by Nigel Poulton.

Ready to explore?

Dashbird

Dashbird is a popular solution for AWS lambda based application. It connects to AWS and provides account, service and function level metrics to optimize cost, performance, and resources. Dashbird can detect lambda specific failures.

Ex:

  • Timeout
  • Memory issue
  • Misconfiguration
  • Runtime errors
  • Exceptions

Failure alerting can be notified through email or slack.

Cloudwatch logs are available in full-text search, and you can do live-tail for troubleshooting.

Features:

  • Errors from various metrics for easy troubleshooting
  • Account wide system health and real-time metrics
  • Create monitoring for a function which is essential for your business – Microservice monitoring
  • System performance metrics
  • Execution timeline and invocation breakdown

Dashbird integrates with AWS X-Ray to give you invocation insight.

You can get it started for FREE. Currently, it supports the following languages.

  • Java
  • Node.js
  • Go
  • Python

Give a try to see how Dashbird works. They got great documentation.

IOpipe

Alerting, real-time metrics, error aggregation, profiling, tracing – everything is available in IOpipe.

Get the complete picture of what your AWS lambda functions are doing and be notified on slack, email, webhooks, and PagerDuty when something goes wrong. Metrics are shown in high-resolution and you can drill-down to the exact invocation.

IOpipie got powerful tracing to track the function call and alert when performance degrades. This can be handy to troubleshoot performance related issue after the release. Let’s take a look at the some of the features.

  • Powerful search to trace data, faster.
  • Weekly email reports about top errors, alerts, performance improvements, etc.
  • Invocation tagging
  • Troubleshoot Node.js for high CPU utilization with CPU profiling

IOpipe is DevOps for the serverless application. You can try their FREE plan to monitor 1 million function invocation every month.

SignalFx

SignalFx is capable of monitoring AWS Lambda, Google Cloud Functions, and Azure Functions. Real-Time visibility and performance monitoring for your functions.

Some of the features of are:

  • Low latency metrics
  • Real-time visibility and aggregation
  • Memory usage and execution time monitoring
  • Cold start detection
  • Cost optimization

Thundra

Take a look at Thundra interactive demo.

Thundra helps you to track and profile your AWS Lambda-based application with zero overhead. As you can see in a demo, the following metrics are beautifully presented in graphs.

  • Invocation count and duration
  • Cold start count and duration
  • Error by functions
  • Error by error types (TimeOut, DemoIllegalAccessException, DemoIllegalArgumentException, NullPointException, JDBCConnectionException, TypeError, etc)

Thundra doesn’t overhead your functions as it leverages CloudWatch logs asynchronously to observe your serverless application.

Some of the features are:

  • Dynamic instrumentation so you need to add the environment variable instead of code change and redeployment
  • Detailed and configurable tracing
  • Data filtration and advanced search
  • Advanced debugging
  • Profile your Lambda functions to see CPU and memory utilization along with GC counts

Thundra is still in beta, and you can try it today.

Amazon CloudWatch

By default, CloudWatch collects basic Lambda metrics. However, you have an option to enable the custom metrics. There is no upfront fee or commitment so you can get it started for FREE and pay as you use/go.

With the help of CloudWatch, you can collect all your AWS data from a single platform to have complete visibility of resources.

Rookout

Rookout is a production-ready debugging platform for serverless functions. It works by inserting a non-breaking breakpoint in your application code.

Currently, it supports AWS Lambda and IBM Cloud Functions.

Stackdriver

Stackdriver can help to monitor Google Cloud Functions logs. You can set up an alert threshold to get notified through email, PageDuty, HipChat, Campfire, Slack, etc.

Epsagon

Epsagon leverages distributed tracing technology with AI algorithms, to automatically detect full transactions throughout a company’s system, provide performance and costs of the business process, and notify the users of issues before they occur.

Epsagon uses automatic instrumentation and requires no code changes from the user.

Conclusion

I hope this gives you an idea about some tools to help you monitor and debug your modern application. Most of them got a FREE plan, so the best thing to do is to give a try to see what works for you.

If you need some hands-on training on AWS Lambda and Serverless framework, then check out this course by Stephane Maarek.