A modern, responsive AWS monitoring dashboard built with React, TypeScript, and Tailwind CSS. This application provides real-time monitoring of AWS services including EC2, RDS, Lambda, and more, with comprehensive alerting and logging capabilities.
- Live Metrics: Real-time CPU, memory, network, and disk usage monitoring
- Service Health: Monitor EC2 instances, RDS databases, Lambda functions, and more
- Interactive Charts: Line charts, area charts, and bar charts with Recharts
- Auto-refresh: Metrics update every 5 seconds automatically
- Smart Alerts: CPU, memory, error rate, and response time thresholds
- Alert Management: Acknowledge, dismiss, and configure alert rules
- Severity Levels: Critical, warning, and info alert classifications
- Real-time Notifications: Instant alerts with visual and audio indicators
- CloudWatch Integration: View and search AWS CloudWatch logs
- Advanced Filtering: Filter by service, log level, and time range
- Real-time Log Streaming: Live log updates with syntax highlighting
- Export Capabilities: Download logs for offline analysis
- Dark Theme: Professional dark theme optimized for monitoring
- Responsive Design: Works perfectly on desktop, tablet, and mobile
- Intuitive Navigation: Clean sidebar navigation with service grouping
- Customizable Dashboards: Personalize your monitoring experience
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS
- Charts: Recharts
- Icons: Lucide React
- Build Tool: Vite
- Package Manager: npm
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone <repository-url> cd aws-cloudwatch-dashboard
-
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
npm run build
npm run previewsrc/
├── components/
│ ├── AlertsPanel.tsx # Alert management interface
│ ├── ChartWidget.tsx # Reusable chart component
│ ├── Dashboard.tsx # Main dashboard view
│ ├── Header.tsx # Top navigation bar
│ ├── LogsViewer.tsx # Log viewing interface
│ ├── MetricCard.tsx # Individual metric display
│ ├── MetricsView.tsx # Detailed metrics view
│ ├── RecentLogs.tsx # Recent logs widget
│ ├── ServiceStatus.tsx # Service health overview
│ └── Sidebar.tsx # Side navigation
├── App.tsx # Main application component
├── main.tsx # Application entry point
└── index.css # Global styles and animations
The main dashboard provides an overview of all AWS services with:
- Real-time metric cards for CPU, memory, network, and disk usage
- Interactive charts showing trends over time
- Service status indicators
- Recent log entries
Comprehensive alert management with:
- Alert summary with counts by severity
- Configurable thresholds for different metrics
- Alert acknowledgment and dismissal
- Real-time alert notifications
Detailed metrics for individual AWS services:
- EC2: CPU utilization, network traffic, disk operations
- RDS: Database connections, query latency, storage usage
- Lambda: Invocations, duration, errors, throttles
Advanced log viewing capabilities:
- Search and filter logs by service, level, and time
- Real-time log streaming
- Syntax highlighting for different log levels
- Export functionality
- Update the metrics state in the relevant component
- Add new MetricCard components
- Configure alert thresholds if needed
- Add service configuration to the Sidebar component
- Create service-specific metric views
- Update the routing in App.tsx
The application uses Tailwind CSS with custom animations and components defined in src/index.css.
This is a demo application with simulated data. To integrate with real AWS services:
-
Install AWS SDK
npm install @aws-sdk/client-cloudwatch @aws-sdk/client-logs
-
Configure AWS Credentials Set up AWS credentials using environment variables or AWS CLI
-
Replace Mock Data Replace the simulated data with actual AWS API calls
- Optimized Rendering: React.memo and useMemo for performance
- Lazy Loading: Components load on demand
- Efficient Updates: Minimal re-renders with proper state management
- Responsive Charts: Charts adapt to container size changes
- Chrome 90+
- Firefox 88+
- Safari 14+
- Edge 90+
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- AWS CloudWatch for inspiration
- Recharts for excellent charting capabilities
- Tailwind CSS for utility-first styling
- Lucide React for beautiful icons
Note: This is a demonstration application with simulated AWS data. For production use, integrate with actual AWS APIs and implement proper authentication and error handling.