nickromano / serverless-ping

Monitoring Service using AWS Lambda

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Serverless Ping

serverless Build Status Coverage Status

Once a minute this lambda function will check to see if your endpoint is up. If so it will send the response time to Cloudwatch. A Cloudwatch alarm will then email you when the endpoint is down (ALARM) or if the lambda function stops working (INSUFFICENT RESULTS).

Cloudwatch Event (1 minute) > AWS Lambda > Cloudwatch Data > Cloudwatch Alarm > SNS Topic > SNS Email Subscription

Estimated Costs: $0.05/month (not including free tier) source

Setup

Install the serverless commandline tools

npm install -g serverless

Deploy this service to AWS (swap out parameters for your needs)

serverless deploy \
	--ping-name=google \
	--ping-host=https://google.com \
	--ping-alarm-email=alertme@gmail.com

That's it! 🎉

Cleanup

To remove all resources created run

serverless remove \
	--ping-name=google \
	--ping-host=https://google.com \
	--ping-alarm-email=alertme@gmail.com

Additional Options

Alarm namespace - By default the cloudwatch data will be put under the Serverless/Ping namespace. You can override it using --ping-alarm-namespace.

--ping-alarm-namespace=MyNamespace/Ping

Exception Monitoring - Any exceptions thrown in the lambda function will be logged to CloudWatch Logs. If you would like them also sent to sentry add the DSN as another paramter to the serverless deploy command above.

--ping-sentry-dsn=https://*********:*******@sentry.io/*****

Contributing

Installing dependencies. Vendored dependencies are included in the git repo to make it easier for users to deploy this.

pip3 install -t vendored/ -r requirements.txt --upgrade

About

Monitoring Service using AWS Lambda

License:MIT License


Languages

Language:Python 100.0%