CloudWedge is an AWS Cloudwatch monitoring framework that accelerates your ability to get up and running with native AWS monitoring services.
How it works
View Documentation: https://cloudwedge.1strategy.com
- Add more AWS services (
app/src/cloudwedge/services
) - Add multi account and multi region dashboard views
- Review permissions
- Provide custom dashboard that is deployed into local dns
- Streamline performance, maybe a way to minimally track state
|-- app
| |-- cloudwedge-spoke.yaml # Spoke template, deloyed from stackset resource in cloudwedge.yaml file
| |-- cloudwedge.yaml # Core template. This is the magic.
| |-- resources # Step function json configurations
| `-- src # CloudWedge lambda functions and logc
|-- package.json # Standard use, look here for all the scripts you can run
|-- publishing
| |-- media # Various images and media assests used in the app, published to s3
| |-- publishing.yaml # Template file to setup some of the resources needed to provide this to the public
| `-- scripts # Bash scripts for publishing the application
|-- docs/ # Markdown files for the documentation page
`-- mkdocs.yml # Configurations for making the documentation page
The application is orchestrated with a step function, so to run it locally requires providing the inputs to each lambda function. The /app/src
folder has each function, and its input.json
file. That can be used for simulating the input it would receive from the step function. You can progress through the functions locally by taking the output of one, and then putting it in the input of the next. Review the step functions to understand the flow between the input and outputs.
Check out the package.json file for running the functions. You can see the AWS SAM resource listed under the script. Such as
npm run local:get
runs the lambda resource defined in the cloudwedge.yaml
file called GetResourcesFunction
You can use the built in vscode debugger to get the step through debugging experience.
-
Drop this in the code
# 🐛🐛🐛 # import debugpy; debugpy.listen(('0.0.0.0', 5858)); debugpy.wait_for_client(); debugpy.breakpoint() # 🐛🐛🐛 #
-
run the function via the npm scripts
npm run local:get
-
Active the vscode debug file for the given function. Check out the
.vscode/launch.json
for configuration details.
- YAML references
- Step Function Iam for Sub Workflows
- Using Sub Workflows
- More Sub Workflows
- Content Filtering with event patterns
- Step Function Context Object
- CloudWatch Insights Docs
- EventBridge Sample Events
- Cloudwatch Metric Math
- Cloudwatch Alarm Yaml example
- Kinesis Monitoring Best Practices
- AWS Icons for Notification Cards
- Monitoring Best Practices
- Monitoring Best Practices
- EventBridge cross accounts