PerfScan is a comprehensive performance monitoring and analysis application designed specifically for IBM Power Systems (including AS/400, iSeries, and modern IBM i systems). The application provides real-time and historical performance monitoring, capacity planning, and problem determination capabilities for enterprise-level IBM midrange systems.
-
Real-Time Monitoring
- Live performance metrics tracking
- CPU, Memory, Disk, and Network utilization monitoring
- Interactive Response Time (5250 terminal response) monitoring
- Real-time job monitoring and analysis
- WebSocket-based live data streaming
-
Historical Data Analysis
- Time-series data collection and visualization
- Trend analysis and performance insights
- Executive summary reports
- Customizable date ranges and filtering
-
Period vs Period Comparison
- Compare performance metrics across different time periods
- Identify performance trends and anomalies
- Side-by-side metric comparisons
-
What's Changed Analysis
- Track performance changes over time
- Identify system modifications and their impact
- Alert on significant performance deviations
-
Problem Determination
- Detailed performance diagnostics
- Top jobs analysis
- Memory pool analysis
- System resource utilization troubleshooting
-
Capacity Planning
- CPW (Commercial Processing Workload) utilization analysis
- Growth projections
- System sizing recommendations
- Automated and manual capacity planning modes
-
Report Generation
- PDF report generation using @react-pdf/renderer
- Customizable report templates with branding
- Automated report scheduling
- Multiple report formats (Historical, Period vs Period, Problem Determination, What's Changed)
- React 17.0.2 - Core UI framework
- Redux Toolkit - State management
- React Router v6 - Client-side routing
- Apollo Client - GraphQL client with WebSocket support
- PrimeReact - UI component library
- ApexCharts - Data visualization
- SASS/SCSS - Styling
- Socket.io - Real-time communication
- GraphQL with WebSocket subscriptions for real-time data
- Axios for REST API calls
- React PDF for report generation
- Date-fns and Moment.js for date handling
- Lodash for utility functions
legacy-app/
├── public/ # Static assets, logos, report templates
├── src/
│ ├── app/
│ │ ├── components/ # Reusable UI components
│ │ │ ├── HistoricalData/
│ │ │ ├── PeriodVsPeriod/
│ │ │ ├── ProblemDetermination/
│ │ │ ├── RealTimeGraphs/
│ │ │ ├── CapacityPlanning/
│ │ │ └── common/
│ │ ├── pages/ # Main page components
│ │ └── hooks/ # Custom React hooks
│ ├── assets/ # Images, fonts, static files
│ ├── auth/ # Authentication components
│ ├── helpers/ # Utility functions
│ ├── services/ # API service layer
│ ├── store/ # Redux store configuration
│ │ ├── slices/ # Redux slices for different features
│ │ └── problemDetermination/
│ └── stylesheets/ # SCSS files
- DashboardHome - Main layout wrapper with sidebar navigation
- EnterpriseServerView - Real-time monitoring dashboard
- HistoricalDataMainPage - Historical performance analysis
- PeriodVsPeriodMainPage - Period comparison functionality
- ProblemDetermination - Diagnostic tools
- CapacityPlanMainPage - Capacity planning features
The application uses Redux Toolkit with a comprehensive store structure:
- Separate slices for each major feature area
- Real-time data management for live monitoring
- Chart data caching and management
- User profile and authentication state
- Report generation and scheduling state
The application is specifically designed for IBM Power Systems monitoring:
- CPW Metrics - Commercial Processing Workload tracking
- 5250 Response Time - Green screen terminal response monitoring
- LPAR Support - Logical partition management
- Pool Faulting - Memory pool fault analysis
- IBM i Job Monitoring - Native job tracking and analysis
- Comprehensive feature set for IBM i monitoring
- Real-time capabilities with WebSocket support
- Extensive reporting and visualization options
- Modular component structure
- Enterprise-focused features (multi-system support, user management)
- React Version - Using React 17 (current is 18+)
- Mixed Date Libraries - Both date-fns and moment.js
- Legacy Build Tools - Uses react-scripts with openssl-legacy-provider flag
- Large Bundle Size - Many dependencies, some potentially redundant
- Mixed Styling Approaches - SASS, styled-components, and inline styles
- Commented Code - Multiple commented route definitions and test components
- No TypeScript - Large codebase would benefit from type safety
- Limited Testing - Test infrastructure present but minimal test coverage
- Routing - Convert React Router to Next.js file-based routing
- API Layer - Migrate REST/GraphQL endpoints to Next.js API routes
- State Management - Consider modern alternatives (Zustand, Tanstack Query)
- Server-Side Rendering - Leverage Next.js SSR for better performance
- Component Library - Evaluate modern alternatives to PrimeReact
- Build System - Modern build pipeline without legacy flags
- Type Safety - Implement TypeScript throughout
- Real-time Features - Evaluate Next.js compatible WebSocket solutions
The application handles sensitive performance data and includes:
- User authentication and authorization
- Role-based access control
- Secure token management
- API authentication
- Incremental Migration - Start with shared components and utilities
- API First - Modernize backend API structure
- Component Library - Create a design system with modern components
- TypeScript - Add type safety incrementally
- Testing - Implement comprehensive test coverage
- Performance - Optimize bundle size and loading strategies
- Documentation - Create component documentation and API specs