Grouping AWS Lambda functions with Dashbird Project View
Tags: aws, serverless, devops, tooling
Published: 2021-03-02 12:24:42

One of the serverless best practices is **one-purpose functions**. You should keep your [Lambda functions](https://dashbird.io/knowledge-base/aws-lambda/anatomy-of-a-lambda-function/) small and solve **exactly one use-case**. This way, you can optimize them better and keep potential [security problems](https://dashbird.io/blog/security-in-serverless/) contained. But creating many small functions can get overwhelming quickly. Even small projects can end up with more than 20 Lambda functions. 

If your serverless systems get bigger with time and solve more and more use-cases, you **tend to have multiple sub-systems that use multiple Lambda functions**. This makes it rather hard to stay on top of things in terms of [monitoring](https://dashbird.io/blog/innovating-serverless-monitoring/). You want to know what your whole system does, but you also want **insight into your sub-systems**. You don't want one sub-system monitoring data to get mixed up with other sub-systems monitoring data.

As a solution to this problem, Dashbird offers **Project Views**.

**Project Views are a way to group your Lambda functions freely, to get a metrics dashboard just for this group. **

You are completely free to **assign which Lambda functions will be tracked by one project view**. This allows you to group by sub-systems, but it also allows you to **group by purpose**. You could, for example, create a project view for all your Lambda functions that integrate with third-party APIs to **monitor the stability and performance of your external integrations** on a cross-project.

Group Your Lambda Functions
---------------------------

If you look at the Dashbird app menu, you find **Project Views** in the Dashbird console's sidebar. 

![Dashbird Menu](https://lh3.googleusercontent.com/iZrMeKXoxEks8zkZ91TWqRRY2bFR5VBVV2He9a6dJGf63JIc3RxLWsk3rnFcl-0xV-o6V53qZQg3tMaStKB1F_pVXq0uLjGpLAQXtwcoViKJVftPJWYTozRJdzmNaMTwriCB23Y7)

Dashbird Menu

When navigating to the Project Views, you can create groups of Lambda functions called projects.

For demonstration purposes, I deployed **two of the CDK example projects**. Each of them has at least one Lambda function. Since these projects have nothing to do with each other, it's a good idea to **split them into two projects**. You can see in the below example how to create a new project and how to add Lambda functions.

![First project creation on Dashbird app](https://lh5.googleusercontent.com/_eOjeZRHKimKI7sAMYrCGpnNCKu1wnL_M7pYW_4NRAz3KDQtUkc5Z4jUmO2okSiGx-dW6es86H9GU4g3hJKh-X-CjaIThgZDjMNkFWXe1a1HQkB8qO7VZi-4NBEOYzi-3PDVRved)

First project creation on Dashbird app

The project requires a unique title that must not include special or whitespace characters. I selected the five Lambda functions of the API Lambda CRUD example and added it to the list of Tracked Lambdas.

Next, I create a project for my second deployment, the Cognito Protected API. The next example shows how I chose to configure it.

![Second project creation on Dashbird app](https://lh6.googleusercontent.com/73mzDsm9HGCH04urLMACJIXVeFVRGVjtA_ovayUy6V4zRs4h5UZNbMKvWS4v3HSq-XUqSdCKlYYb0BQUXi2bu3gdnVNIL00k2WDoouC36_GH189i2LDxD5FFJc2eQU9SNiLQg0kr)

Second project creation on Dashbird app

After the creation, I have two projects in the Project Views list, as shown in the below example. These can be selected and even directly linked to. This way, the dashboard is filtered for each of these Lambda functions.

![Project views list on Dashbird app](https://lh4.googleusercontent.com/photmQpWPrOJLzjmKf85Gq7SWSsqnaEdUQU56TffRTv6GwBn8j-EwD-h4kCgYNZU92m9Y3luUmqiHdHUadsgqCSeUrueoRIzvAYLSxpdXk5cPFdkacUFmoimvR8tgOofGrx7JHmw)

Project views list on Dashbird app

Summary
-------

Dashbird's Project Views is an **easy way to split the mass of Lambda functions**. Group them per project or group them in any other way that makes sense for your business.

This way, you can stay up-to-date on different parts of your applications without getting overwhelmed by looking at everything at once.

You can try it out yourself with [Dashbird for free](https://dashbird.io/features/):

-   No code changes
-   No credit card required
-   Simple 2-minute set up
-   Get access to all premium features
-   **Start working with your data and troubleshooting immediately**

* * * * *

Further reading:

[Log-based monitoring for AWS Lambda](https://dashbird.io/blog/log-based-monitoring-for-aws-lambda/)

[Best practices for logging in AWS Lambda](https://dashbird.io/blog/best-practice-for-logging-lambdas/)

[Why AWS Console isn't the best for serverless debugging?](https://dashbird.io/blog/aws-console-serverless-debugging/)