
What it is
The project goal was to create an operational dashboard which monitored specific cloud microservices. In this project, Grafana was used to create dashboards to visualize & monitor project metrics. The microservices for the previous portfolio project work is used as the data sources for monitoring.
How it's built
An AWS EC2 Linux instance, hosts the Grafana application and several other small packages to enable monitoring. Metrics & log providers such as AWS Cloudwatch, are configured as data sources which are then queried by Grafana. A reverse proxy & application load balancer are used to route traffic. DNS service is provided by Route 53.
Dashboard

The dashboard itself is designed to visualize the metrics in an easy to understand panel. The dashboard begins with a summary of CPU metrics, including utilization and billing information, followed by network data such as inbound & outbound traffic insights. Then, database metrics such as available storage, RAM and read/write latency are visible. Lambda logs provided by AWS Cloudwatch allow insight into the various serverless functions used across services.
Finally, Github metrics are available to provide insight into current activity such as issues, pull requests and contributors.

Technologies
- Grafana: Operational dashboards
- Amazon EC2: Cloud compute instance
- Cloudwatch: AWS resource monitoring
- Docker: Portable container used for deployment
- Ansible: Configuration management
Lessons learned
- Keep things manageable; don't overcomplicate things. This was a big lesson because I wasted a lot of time trying to automate deployment. I lost sight of the essence of the project by overcomplicating and nerding out.