serverless-plugin-cloudwatch-sumologic
Plugin which auto-subscribes a log delivery lambda function to lambda log groups created by Serverless
Installation
npm install --save-dev serverless-plugin-cloudwatch-sumologic
Configuration
- First follow this guide to create a new collector and http source on Sumologic.
- Add the following custom variables to your
serverless.yml
file.
plugins: - serverless-plugin-cloudwatch-sumologic custom: shipLogs: # Required arn: existing cloudwatch logs ARN # OR collectorUrl: Paste your url from step 1. here # Optional, default pattern is "[timestamp=*Z, request_id=\"*-*\", event]" filterPattern: "[timestamp=*Z, request_id=\"*-*\", correlation_id=\"*-*\", event]" role: ARN of IAM role to use
How it works
This plugin automates the process described in the readme provided by Sumologic.
Upon running sls deploy
it will...
- if no existing cloudwatch function is specified
- Create a temporary function in the root of your serverless project
- Add that function to the in-memory CloudFormation script created by the serverless framework
- Iterate through all the functions (except for the sumologic one) and generate:
- CloudFormation Subscription Filter Resource linking the log groups created by serverless framework to the sumologic lambda function.
- Permissions to Invoke the logging function, as a Resource.
- Wait for the stack creation/update to complete and then delete the temporarily created function source directory.
Caveats
You must be running serverless 1.25.0 or higher.
Contribute
Please fork this repo to make changes and then issue a pull request back to this repo. No unit tests are included at this time. Unit tests will be added before this goes into version 1.0.0
Testing
Tests are written using Mocha, Sinon, Chai, using Rewire
Run with npm test