aws-cloudwatch-forwarder
Forwards any process StdOut and StdErr to AWS Cloudwatch. Automatically configures the log group and log stream. Uploads the log events in batches. Retries in the case of errors.
Prerequisites
-
Get a pair of AWS credentials that can forward logs to CloudWatch
-
Make sure the following environment variables are set
AWS_REGION='us-east-1' AWS_ACCESS_KEY_ID='XXXXXXXXXXXXXXX' AWS_SECRET_ACCESS_KEY='XXXXXXXXXXXXXXX'
Installation
npm i -g aws-cloudwatch-forwarder
Usage
aws-cloudwatch-forwarder 'echo "sample application"'
Where echo "sample application"
is your application. DO NOT forget to wrap your application in quotes.
Usage inside of a node application
Check out this sample application
Configuration
The forwarder can be configured through the following environment variables.
-
FC_AWS_LOG_GROUP_NAME
the AWS log group name. Defaults toaws-log-forwarder
. -
FC_AWS_LOG_STREAM_NAME
the AWS log stream name. Defaults to the following calculated value{hostname}-{platform}-{title}-{pid}
. -
FC_AWS_DEBUG
whether to display AWS transmission DEBUG info. Defaults tofalse
. -
FC_AWS_ENABLED
whether the AWS forwarder is enabled. Defaults totrue
. -
FC_STDOUT_ENABLED
whether to print out the piped data into the StdOut. Defaults totrue
.
Nitpicky Details
-
FCG_POLLING_INTERVAL
the wait time in milliseconds the forwarder waits before checking if there any data to forward. Defaults to1000
ms. -
FCG_MAX_COUNT_PER_TRANSMISSION
the maximum number of log messages to forward in a single AWS transmission. Defaults to10000
. -
FCG_RETRY_COUNT
the number of retries in case of a failure. Defaults to0
. This means retry is disabled. -
FCG_RETRY_DELAY_BASE_INTERVAL
the base number of milliseconds to use in the exponential backoff for operation retries. Defaults to100
ms. -
FCG_DEBUG
whether to display forwarder events. Defaults tofalse
.