aws-xray-sdk-node
dazn-lambda-powertools
Our great sponsors
aws-xray-sdk-node | dazn-lambda-powertools | |
---|---|---|
4 | 4 | |
262 | 731 | |
1.1% | -0.1% | |
6.6 | 0.0 | |
10 days ago | 9 months ago | |
JavaScript | JavaScript | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
aws-xray-sdk-node
-
Serverless Spy Vs Spy Chapter 1: X-ray
You see in the node xrays sdk that each AWS service is customized with the captureAWSRequest function, which is responsible for the X-Ray calls.
-
is it best to have aws x-ray be enabled in a production environment?
Generally speaking, it is encouraged on serverless-heavy environments (assuming Lambdas, API Gateways, AppSync, DynamoDB and similar services were configured to use it). However, some crucial pieces are still missing, like a proper SQS integration. Bear that in mind.
-
First Look at Lambda Powertools TypeScript
So what do we get for that? The Tracer module wraps the AWS X-Ray SDK (as a transitive dependency). It doesn't really add any net new capabilities, but makes the SDK easier to work with. In my experience, that SDK is a bit of a bear so this may be well worth it. We can decorate class methods to introduce new trace segments in a single line of code. We can also use the imperative form to add new traces where we see fit. We can capture AWS clients, but that simply exposes the X-Ray SDK.
-
X-Ray tracing from SQS to Lambda
aws-xray-sdk-node: https://github.com/aws/aws-xray-sdk-node/issues/208
dazn-lambda-powertools
-
First Look at Lambda Powertools TypeScript
I'm a big fan of TypeScript and in fact co-authored a book about it. I don't find myself using Java or Python much, so while I've been interested in Lambda Powertools, I never tried it out until now. Lambda Powertools TypeScript joins middy and DAZN Lambda Powertools in the Lambda tooling space for the Node.js runtime. Two things that differentiate Lambda Powertools TypeScript from comparable libraries are it is sponsored by AWS and it supports decorators.
-
Test Drive AWS Lambda Powertools for Typescript
The next natural step was to look at middleware such as Middy to decorate the main business logic, and allow these tasks to be defined once and used consistently. I remember listening to a Comic Relief talk about their Lambda wrapper back in 2019. Since then, I was introduced by Yan Cui to DAZN Lambda Powertools, which was the inspiration for this new project.
-
AWS Lambda logging best practices
You might be interested in the logger/correlation ID features of https://github.com/getndazn/dazn-lambda-powertools - been super useful for us so far.
-
Keep your CloudWatch bill under control when running AWS Lambda at scale
Nevertheless, log files are an important resource to debug problems and to get deeper insights into the behavior of a serverless system. Every logged detail might help to identify issues and to fix bugs and problems. Structured logging is important as log files can be analyzed much easier (e.g. with AWS CloudWatch Insights) which will save time and engineering costs. The dazn-lambda-powertools library provides a logger that supports structured logging for Node.js, the AWS Lambda Powertools offer the same for Python and Java.
What are some alternatives?
middy - 🛵 The stylish Node.js middleware engine for AWS Lambda 🛵
powertools-lambda-typescript - Powertools is a developer toolkit to implement Serverless best practices and increase developer velocity.
deno-lambda - A deno runtime for AWS Lambda. Deploy deno via docker, SAM, serverless, or bundle it yourself.
dynamoDb-partiQL-javascript - This github repo contains the code examples and a getting started part to follow along with the blog article. It compares ways of querying and inserting data into dynamoDb using PartiQL vs using the Document Client using the AWS Javascript SDK
powertools-lambda
logger-with-cache - An example of a logger for AWS Lambda which caches all messages
aws-embedded-metrics-node - Amazon CloudWatch Embedded Metric Format Client Library
Grant - OAuth Proxy
xraystarter - Getting started with AWS X-Ray
super-serverless-sample - Backend serverless que simula o sistema de votação do BBB