Automate Deployment Observability using AWS CloudWatch Dashboards (for almost any pipeline)
If you have multiple pipelines deploying multiple services in multiple regions, then there's a good chance you're a victim to deployment observability fragmentation.
Deployment observability fragmentation contributes towards developer cognitive overhead and detracts from developer productivity.
Wouldn't it be nice if you could see what version of a service is deployed in each region and environment - regardless of what pipeline deployed it?
This solution aims to solve this problem in a very simply and effective way, using a simple Lambda AWS function with CloudWatch.
To date, there are no easy and effective ways to create this level of observability without implementing a full blown logging solution, or, rebuilding all your CI/CD deployments into a new singular pipeline.
This Lambda function will automatically generate CloudWatch Dashboards and Widgets, per region and environment.
Below is an example of a generated CloudWatch Dashboard for au-prod and au-qa.
Green tick === Deployment was successful
Red cross === Deployment failed
Orange warning === Deployment was successful, but a service dependancy failed.
Once you've deployed this Lambda function, attach a trigger to a CloudWatch log stream, so the function will execute each time the log stream is written to. This is the same log stream where all your CI/CD pipelines will push logs to.
To build the deployment package, run the following command, to produce a deployable zip file.
npm run build
Please review Tutorial and Sample configuration
- @markpirotta - Idea & Initial work
- @MirandaDora - Expansion on the initial work, and taking this internally to Amazon.
See also the list of contributors who participated in this project.