npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@serverless-ninja/sana

v1.1.139

Published

A command-line interface for analyzing an AWS account's serverless resources

Downloads

178

Readme

sana (Serverless ANAlyzer)

npm version Unit Tests Sample Function Distribution by Runtime

A command-line interface for analyzing an AWS account's serverless resources. Made by frugal engineers for AWS serverless engineers.

Visit Documentation Website

Table of Contents

Why sana?

Inspired heavily by Werner Vogels' frugal architect laws mentioned at the 2023 AWS re:Invent keynote, sana aims to provide tooling that fills in the gaps in the space of serverless observability. Here are some problem statements that sana tries to solve.

  • Detects how many functions in an account need to be migrated to the latest possible runtime.
  • Identifies how many DynamoDB tables were not configured with delete protection.
  • Eases reporting capabilities in CI/CD pipelines to enhance observability of build impact on your AWS accounts.
  • Provides the ability to observe the total health of an AWS account without leaving your VS Code/terminal.
  • And much more. StepFunctions, SQS, Event Bridge, S3, and CF commands are under development!"

Installation

npm i -g @serverless-ninja/sana
sana --version

@serverless-ninja/sana 1.1.x

Upgrading Existing Installation

npm uninstall -g @serverless-ninja/sana
npm i -g @serverless-ninja/sana
sana --version

@serverless-ninja/sana 1.1.x

Full Service Analysis

You can easily run full service analysis using the following commands:

sana lambda # Full Lambda Function Analysis

sana ddb # Full DynamoDB Table Analysis

Multi-command Prompts

You can also run multiple analysis in a single prompt using comma-separated commands.

# Runs full analysis for DynamoDB and Lambda
sana ddb,lambda

# Runs both average memory and timeout commands
sana lambda-avg-memory,lambda-avg-timeout

Global Flags

List of global flags that you can pass on all commands.

Authentication Modes

sana can authenticate against your AWS account by either using the default AWS CLI profile or by using named profiles. Take the example below

# Use default AWS profile in you dev machine.
sana lambda-runtime-distribution

# The same syntax works for CI/CD agents
# that relies on IAM roles
sana lambda-runtime-distribution

# If you need to target multiple accounts,
# You can use named profiles
sana lambda-runtime-distribution --profile foo

# Environment variable support is under development

Scanning Specific Regions

You can use the --region or -r flag to scan specific region(s) of interest.

# Single region syntax
sana ddb-count --region ap-southeast-1

# Multi-region syntax
sana ddb-count --region ap-southeast-1,us-east-1

# shorthand
sana ddb-count -r ap-southeast-1,us-east-1

Distribution Charts

For distribution queries, you can pass the -o chart flag to get the results printed in horizontal charts

# Lambda runtime distribution chart
sana lambda-runtime-distribution -o chart

# DynamoDB chart for delete protection status
sana ddb-delete-protection-distribution -r us-east-1  -o chart

Silent Mode

You can pass the --silent-mode flag to disable all logs.

sana lambda-count --silent-mode

Disable Progress Bar

You can use the --no-progress-bar flag to disable the progress bar. This flag is often used in build servers.

sana lambda-count --no-progress-bar