lumigo-io / lumigo-CLI

Open source CLI tool to help you develop and manage serverless applications.
https://lumigo.io
Apache License 2.0
331 stars 21 forks source link
aws-lambda kinesis-shards lambda-cold-starts lambda-cost lambda-functions lumigo-cli serverless

PLEASE NOTE, THIS PROJECT IS NO LONGER BEING MAINTAINED

It will not receive any future updates or bug fixes.

lumigo-cli

A collection of helpful commands designed to smooth out the development and management of event-based, distributed applications.

Lumigo-cli also powers the Stackoscope that runs health-check on Serverless environments to detect security, cost, scalability, resilience, and performance issues.

oclif Version Downloads/week License codecov CircleCI

lumigo-cli analyze-lambda-cold-starts

Analyze Lambda functions cold starts in ALL regions

USAGE
  $ lumigo-cli analyze-lambda-cold-starts

OPTIONS
  -d, --days=days        only find cold starts in the last X days
  -h, --hours=hours      only find cold starts in the last X hours
  -m, --minutes=minutes  [default: 60] only find cold starts in the last X minutes
  -n, --name=name        only analyze this function, e.g. hello-world
  -p, --profile=profile  AWS CLI profile name
  -r, --region=region    only include functions in an AWS region, e.g. us-east-1
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/analyze-lambda-cold-starts.js

lumigo-cli analyze-lambda-cost

Analyze Lambda functions costs in ALL regions

USAGE
  $ lumigo-cli analyze-lambda-cost

OPTIONS
  -d, --days=days        analyze lambda cost for the last X days
  -n, --name=name        only analyze this function, e.g. hello-world
  -p, --profile=profile  AWS CLI profile name
  -r, --region=region    only include functions in an AWS region, e.g. us-east-1
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/analyze-lambda-cost.js

lumigo-cli clear-account

Clear your AWS account from all supported resources. Use with cautious!

USAGE
  $ lumigo-cli clear-account

OPTIONS
  -f, --force            Skip prompt. Use mainly in CI/CD environments
  -p, --profile=profile  AWS CLI profile name
  -r, --retries=retries  [default: 2] How many times to try to delete stubborn resource
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/clear-account.js

lumigo-cli feedback

Suggest feature or report bug

USAGE
  $ lumigo-cli feedback

OPTIONS
  -d, --description=description  issue description
  -s, --subject=subject          (required) issue title
  -t, --type=feature|bug         (required) feedback type

See code: src/commands/feedback.js

lumigo-cli help [COMMAND]

display help for lumigo-cli

USAGE
  $ lumigo-cli help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

lumigo-cli list-kinesis-shards

Lists the shards of a Kinesis stream

USAGE
  $ lumigo-cli list-kinesis-shards

OPTIONS
  -n, --streamName=streamName  (required) name of the Kinesis stream, e.g. event-stream-dev
  -p, --profile=profile        AWS CLI profile name
  -r, --region=region          (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy        http/https proxy (when running in a corporate network)

See code: src/commands/list-kinesis-shards.js

lumigo-cli list-kinesis-streams

Lists the Kinesis streams

USAGE
  $ lumigo-cli list-kinesis-streams

OPTIONS
  -p, --profile=profile  AWS CLI profile name
  -r, --region=region    AWS region, e.g. us-east-1
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/list-kinesis-streams.js

lumigo-cli list-lambda

List Lambda functions in ALL regions

USAGE
  $ lumigo-cli list-lambda

OPTIONS
  -i, --inactive         only include functions that are inactive for 30 days
  -p, --profile=profile  AWS CLI profile name
  -r, --region=region    only include functions in an AWS region, e.g. us-east-1
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/list-lambda.js

lumigo-cli measure-lambda-cold-starts

Measures a function's cold start duration (i.e. duration + initDuration)

USAGE
  $ lumigo-cli measure-lambda-cold-starts

OPTIONS
  -e, --payload=payload            [default: {}] the JSON payload to send to the function
  -f, --file=file                  file that contains the JSON payload to send to the function
  -i, --invocations=invocations    [default: 100] the number of invocations to run for each configuration
  -n, --functionName=functionName  (required) name of the Lambda function
  -p, --profile=profile            AWS CLI profile name
  -r, --region=region              (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy            URL of the http/https proxy (when running in a corporate network)

See code: src/commands/measure-lambda-cold-starts.js

lumigo-cli powertune-lambda

Powertunes a Lambda function for cost or speed

USAGE
  $ lumigo-cli powertune-lambda

OPTIONS
  -e, --payload=payload                  [default: {}] the JSON payload to send to the function
  -f, --file=file                        file that contains the JSON payload to send to the function
  -i, --invocations=invocations          [default: 100] the number of invocations to run for each configuration
  -n, --functionName=functionName        (required) name of the Lambda function
  -o, --outputFile=outputFile            output file for the powertune SAR response
  -p, --profile=profile                  AWS CLI profile name
  -r, --region=region                    (required) AWS region, e.g. us-east-1
  -s, --strategy=cost|speed|balanced     (required) what to powertune the function for - "cost", "speed" or "balanced"
  -v, --powerValues=powerValues          comma-separated list of power values to be tested, e.g. 128,256,512,1024

  -w, --balancedWeight=balancedWeight    the trade-off between cost and time, 0.0 is equivalent to "speed" strategy, 1.0
                                         is equivalent to "cost" strategy

  -z, --noVisualization                  suppresses the prompt to show visualization

  --autoOptimize                         if true, apply the optimal configuration at the end of its execution

  --autoOptimizeAlias=autoOptimizeAlias  the state machine will create or update this alias with the new optimal power
                                         value

  --httpProxy=httpProxy                  URL of the http/https proxy (when running in a corporate network)

  --parallelInvocation                   run invocations in parallel

See code: src/commands/powertune-lambda.js

lumigo-cli replay-sqs-dlq

Replays the messages in a SQS DLQ back to the main queue

USAGE
  $ lumigo-cli replay-sqs-dlq

OPTIONS
  -c, --concurrency=concurrency     [default: 10] how many concurrent pollers to run
  -d, --dlqQueueName=dlqQueueName   (required) name of the SQS DLQ queue, e.g. task-queue-dlq-dev
  -k, --keep                        whether to keep the replayed messages in the DLQ
  -n, --targetName=targetName       (required) name of the target SQS queue/SNS topic, e.g. task-queue-dev
  -p, --profile=profile             AWS CLI profile name
  -r, --region=region               (required) AWS region, e.g. us-east-1
  -t, --targetType=SQS|SNS|Kinesis  [default: SQS] valid values are SQS [default], SNS, and Kinesis
  --httpProxy=httpProxy             URL of the http/https proxy (when running in a corporate network)
  --targetProfile=targetProfile     AWS CLI profile name to use for the target account
  --targetRegion=targetRegion       AWS region for the target resource, e.g. eu-west-1

See code: src/commands/replay-sqs-dlq.js

lumigo-cli s3-select-batch

Runs S3 Select on a batch of S3 objects, e.g. by prefix

USAGE
  $ lumigo-cli s3-select-batch

OPTIONS
  -b, --bucket=bucket                  (required) name of the S3 bucket
  -c, --concurrency=concurrency        [default: 10] how many concurrent S3 Select operations to run
  -e, --expression=expression          (required) the expression used to query each object
  -f, --fileType=CSV|JSON|Parquet      (required) What format are the files in? CSV, JSON, or Parquet
  -o, --outputFile=outputFile          output filename, if omitted, records would be printed in the console
  -p, --profile=profile                AWS CLI profile name
  -r, --region=region                  (required) AWS region, e.g. us-east-1
  -x, --prefix=prefix                  (required) object prefix
  --compressionType=(NONE|GZIP|BZIP2)  [default: NONE] the objects' compression format - NONE, GZIP or BZIP2
  --csvConfig=csvConfig                [default: {}] JSON config on how to parse CSV files
  --httpProxy=httpProxy                URL of the http/https proxy (when running in a corporate network)
  --jsonConfig=jsonConfig              [default: {"Type": "DOCUMENT"}] JSON config on how to parse JSON files
  --outputCsvConfig=outputCsvConfig    [default: {}] JSON config on how to format the output file in CSV
  --outputJsonConfig=outputJsonConfig  [default: {}] JSON config on how to format the output file in JSON

See code: src/commands/s3-select-batch.js

lumigo-cli scanner

Use Lumigo Stackoscope to scan your AWS account and suggest improvements

USAGE
  $ lumigo-cli scanner

OPTIONS
  -p, --profile=profile  AWS CLI profile name
  --httpProxy=httpProxy  URL of the http/https proxy (when running in a corporate network)

See code: src/commands/scanner.js

lumigo-cli send-to-sns

Sends each line in the specified file as a message to a SNS topic

USAGE
  $ lumigo-cli send-to-sns

OPTIONS
  -c, --concurrency=concurrency  [default: 10] how many concurrent pollers to run
  -f, --filePath=filePath        (required) path to the file
  -n, --topicName=topicName      (required) name of the SNS topic, e.g. my-topic-dev
  -p, --profile=profile          AWS CLI profile name
  -r, --region=region            (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy          URL of the http/https proxy (when running in a corporate network)

See code: src/commands/send-to-sns.js

lumigo-cli send-to-sqs

Sends each line in the specified file as a message to a SQS queue

USAGE
  $ lumigo-cli send-to-sqs

OPTIONS
  -f, --filePath=filePath    (required) path to the file
  -n, --queueName=queueName  (required) name of the SQS queue, e.g. task-queue-dev
  -p, --profile=profile      AWS CLI profile name
  -r, --region=region        (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy      URL of the http/https proxy (when running in a corporate network)

See code: src/commands/send-to-sqs.js

lumigo-cli sls-remove

Deletes a CloudFormation stack that was generated by the Serverless framework

USAGE
  $ lumigo-cli sls-remove

OPTIONS
  -e, --emptyS3Buckets       empty all S3 buckets that are part of the stack
  -n, --stackName=stackName  (required) name of the CloudFormation stack, e.g. hello-world-dev
  -p, --profile=profile      AWS CLI profile name
  -r, --region=region        (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy      URL of the http/https proxy (when running in a corporate network)

See code: src/commands/sls-remove.js

lumigo-cli switch-profile

Switch AWS profiles

USAGE
  $ lumigo-cli switch-profile

See code: src/commands/switch-profile.js

lumigo-cli tail-cloudwatch-events-bus

Tail a CloudWatch Events bus

USAGE
  $ lumigo-cli tail-cloudwatch-events-bus

OPTIONS
  -n, --eventBusName=eventBusName  name of the CloudWatch Events bus, if omitted, then the default bus is used
  -p, --profile=profile            AWS CLI profile name
  -r, --region=region              (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy            URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-cloudwatch-events-bus.js

lumigo-cli tail-cloudwatch-events-rule

Tail a CloudWatch Events rule

USAGE
  $ lumigo-cli tail-cloudwatch-events-rule

OPTIONS
  -b, --eventBusName=eventBusName  name of the CloudWatch Events bus
  -n, --ruleName=ruleName          (required) name of the CloudWatch Events rule
  -p, --profile=profile            AWS CLI profile name
  -r, --region=region              (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy            URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-cloudwatch-events-rule.js

lumigo-cli tail-cloudwatch-logs

Tail a CloudWatch Log Group

USAGE
  $ lumigo-cli tail-cloudwatch-logs

OPTIONS
  -f, --filterPattern=filterPattern  filter pattern for the logs, see
                                     https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.htm
                                     l

  -i, --interval=interval            [default: 1000] interval (ms) for polling CloudWatch Logs

  -n, --namePrefix=namePrefix        (required) name prefix of the log group, e.g. /aws/lambda/workshop-dev-

  -p, --profile=profile              AWS CLI profile name

  -r, --region=region                (required) AWS region, e.g. us-east-1

  --httpProxy=httpProxy              URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-cloudwatch-logs.js

lumigo-cli tail-dynamodb

Tails the records going into a DynamoDB stream

USAGE
  $ lumigo-cli tail-dynamodb

OPTIONS
  -e, --endpoint=endpoint    DynamoDB endpoint (for when using dynamodb-local)
  -n, --tableName=tableName  (required) name of the DynamoDB table, e.g. users-dev
  -p, --profile=profile      AWS CLI profile name
  -r, --region=region        (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy      URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-dynamodb.js

lumigo-cli tail-eventbridge-bus

Tail an EventBridge bus

USAGE
  $ lumigo-cli tail-eventbridge-bus

OPTIONS
  -n, --eventBusName=eventBusName  name of the EventBridge bus, if omitted, then the default bus is used
  -p, --profile=profile            AWS CLI profile name
  -r, --region=region              (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy            URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-eventbridge-bus.js

lumigo-cli tail-eventbridge-rule

Tail an EventBridge rule

USAGE
  $ lumigo-cli tail-eventbridge-rule

OPTIONS
  -b, --eventBusName=eventBusName  name of the EventBridge bus
  -n, --ruleName=ruleName          (required) name of the EventBridge rule
  -p, --profile=profile            AWS CLI profile name
  -r, --region=region              (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy            URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-eventbridge-rule.js

lumigo-cli tail-kinesis

Tails the records going into a Kinesis stream

USAGE
  $ lumigo-cli tail-kinesis

OPTIONS
  -n, --streamName=streamName  (required) name of the Kinesis stream, e.g. event-stream-dev
  -p, --profile=profile        AWS CLI profile name
  -r, --region=region          (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy        URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-kinesis.js

lumigo-cli tail-sns

Tails the messages going into a SNS topic

USAGE
  $ lumigo-cli tail-sns

OPTIONS
  -n, --topicName=topicName  (required) name of the SNS topic, e.g. task-topic-dev
  -p, --profile=profile      AWS CLI profile name
  -r, --region=region        (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy      URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-sns.js

lumigo-cli tail-sqs

Tails the messages going into a SQS queue

USAGE
  $ lumigo-cli tail-sqs

OPTIONS
  -n, --queueName=queueName  (required) name of the SQS queue, e.g. task-queue-dev
  -p, --profile=profile      AWS CLI profile name
  -r, --region=region        (required) AWS region, e.g. us-east-1
  --httpProxy=httpProxy      URL of the http/https proxy (when running in a corporate network)

See code: src/commands/tail-sqs.js

lumigo-cli whoami

See your current AWS profile name

USAGE
  $ lumigo-cli whoami

See code: src/commands/whoami.js