Mohan Golla
5 min readJan 17, 2024

HumanGov: Implementing AWS Cloud Watch Synthetics for Real-Time Application URL Monitoring Integrated With CloudWatch Alarms, SNS, and AWS Chatbot to Send Real-Time Alerts on Slack.

In this hands-on project, I engaged in the advanced aspects of AWS CloudWatch, focusing on implementing CloudWatch Synthetics for real-time application URL monitoring, integrated with CloudWatch Alarms, SNS, and AWS Chatbot for immediate alerts on Slack. The goal was to establish a robust monitoring system for the HumanGov application to ensure its high availability and performance.

To get started, I initiated the creation of CloudWatch Synthetic canaries. These canaries were designed to continuously monitor the HumanGov application URLs, simulating user interactions to check for availability and response times.

Following the canaries’ setup, I integrated CloudWatch Alarms. These alarms were configured to trigger based on specific metrics such as high response time or failure rates, ensuring immediate detection of any application issues.

The alarm thresholds were carefully set to balance sensitivity and practicality, avoiding false positives while ensuring no critical issues were missed.

To enhance the response to these alarms, I integrated AWS SNS (Simple Notification Service). This allowed for the creation of notification topics that would relay any alarm state changes to designated subscribers. It was crucial to have a seamless flow of information regarding the application’s health.

The pinnacle of this project was integrating AWS Chatbot with Slack. By linking the SNS topics to AWS Chatbot, I enabled real-time alerts to be sent directly to a designated Slack channel. This ensured that the development and operations SRE team were immediately informed about any application issues, allowing for prompt action.

The project culminated in a series of rigorous tests to validate the entire setup. By simulating various application issues, I confirmed that the canaries correctly detected problems, alarms triggered as expected, and notifications were promptly sent through AWS Chatbot to Slack.

This intensive project not only reinforced my understanding of AWS CloudWatch and its integrations but also highlighted the importance of proactive monitoring in maintaining application reliability and performance in the cloud.

Below are few screenshots:

HumanGov Logo

Created HumanGov Amazon SNS notification

Synthetic Canary

Create Canary

Canary for HumanGov application for the state of California

CloudWatch Alarm

Canary monitoring the HumanGov application for the state of California

Canary can store screenshots of the appliction

AWS Chatbot

Create a new Slack channel

sre-team Slack channel

Send a test message

The Slack channel receives the test message

AWS Cloud 9 — kubectl get deployments to check the applications running.

Bring down nginx application for the state of California to test the Canary if it can detect the application is down.

HumanGov applicaiton for the state of California is down.

The Canary detects that the application is down.

The Slack channel receives the message that the HumanGov application for the state of California is down.

The Canary shows the error details.

An Alarm is activated.

Bring up the HumanGov application for the state of California

The Canary detects that the HumanGov application for the state of California is Up again and the Canary changes the status from Failed to Passed.

Mohan Golla
Mohan Golla

No responses yet