Forward CloudWatch alarms to Slack.
Acknowledge, Pass, or Close alerts.
Talk to marbot!
Working as DevOps engineers in various teams we have alway been looking for a tool to share on-call duty among many shoulders without the need for organizational overhead. We came up with the idea of building a chatbot to combine Amazon CloudWatch with Slack.
What it does
Avoid alert fatigue! Connect Amazon CloudWatch and Slack to spread alerts among your team members.
One engineer, not the whole team, receives an alert. You can focus on your project work instead of being distracted by your pager. marbot escalates unnoticed incidents up to the next engineer or the team.
No need to register a new account or install a new app. Just reuse your favorite messaging app: Slack. marbot delivers alarms by sending direct messages. Acknowledging, passing, and closing alerts with Slack-native actions.
No need to setup complicated on-call rotations and schedules. Use Slack channels to organize teams. Join a channel to be on-call. marbot respects your DND schedule and snooze setting.
- Receiving alerts from Amazon CloudWatch via Amazon SNS
- Escalating alerts if a team member isn't acknowledging within 5 minutes
- Managing alerts by accepting, passing or closing them
- Analyzing alerts in a daily summary
- Grouping alerts with a dedicated alarm gateway for each channel
How we built it
We used the following services and tools to create marbot.
APIs and Libraries
- Slack Events API
- Slack Web API
- natural (general natural language facility for Node.js)
- AWS Lambda
- Amazon API Gateway
- Amazon DynamoDB
- Amazon Kinesis Streams
- Amazon Kinesis Analytics
- Amazon SNS
- Amazon SQS
- AWS CloudWatch
- Serverless Framework
- Jenkins 2.0
Challenges we ran into
Besides building a great chatbot our goal during this hackathon was to learn about new services and tools. Getting started with new tools and services has been a rewarding challenge for us.
- Using the latest version of the Serverless framework to deploy our chatbot.
- Analyzing data with Amazon Kinesis Analytics.
- Talking to the Slack APIs.
Accomplishments that we're proud of
We were particularly proud of the following three details of our chatbot.
Keep It Simple
marbot is simple to use. It combines existing concepts to provide a relaxed pager solution. We spent a lot of effort to simplify the onboarding process and day-to-day usage.
Slack App Directory
marbot was approved by Slack and is listed in the Slack App Directory.
marbot is making use of a shiny new service: Amazon Kinesis Analytics. Allowing us to generate accurate daily team statistics.
What we learned
- People do love our sweet marmot mascot.
- Using the Serverless framework to speed up the setup process of a serverless environment.
- How to analyze data streams with Kinesis Analytics.
What's next for marbot
We are looking forward to improving our Minimum Viable Product based on the feedback from our steadily growing user base.