Overview¶
Consistent maintenance of the backend server app involves running several chores to ensure optimal performance, security, and reliability.
Application Performance Monitoring¶
To ensure the backend server app performs optimally, we use New Relic for application performance monitoring. New Relic provides detailed insights into the application's performance, helping us identify and address any bottlenecks or issues. Key metrics monitored include response times, error rates, and throughput. By continuously monitoring these metrics, we can proactively maintain the app's performance and ensure a smooth user experience.
Uptime Monitoring¶
To ensure the backend server app remains available and responsive, we use Uptime Robot for uptime monitoring. We have set up a regular health check endpoint at /health, which Uptime Robot pings at regular intervals. If any issues are detected, Uptime Robot notifies us immediately, allowing us to take prompt action to resolve the problem and minimize downtime.
Admin Monitoring¶
We monitor the admin interface using the /admin endpoint. This endpoint provides access to various administrative functions and dashboards, allowing us to manage and monitor the application's overall health and performance.
Sidekiq Jobs Monitoring¶
For monitoring background jobs, we use the /admin/sidekiq endpoint. This endpoint provides detailed insights into the status and performance of Sidekiq jobs, helping us ensure that background processing tasks are running smoothly and efficiently.
ECS Exec to Production Console¶
For one-off updates to any data inconsistencies, we use ECS exec to access the production console. This allows us to directly interact with the production environment and make necessary adjustments. It is crucial to handle this with care to avoid any unintended side effects. Always ensure you have the necessary permissions and follow the established conventions when performing these updates.
Flashcards Uploads¶
- Saut school provides all the files with possible nested folders via a Google Drive link.
- Developers download them locally.
- Developers run the scripts mentioned in the
lib/tasks/flashcard_import.rakefile.
Detailed Steps¶
- Once the folder is downloaded, run
rails flashcard:prepare_dirlike so:rails flashcard:prepare_dir ~/Downloads/Saut/Need\ to\ be\ inserted\ in\ LMS/. - If step 1 is successful, then run
rails flashcard:check_dir ~/Downloads/Saut/Need\ to\ be\ inserted\ in\ LMS/. - Once step 2 is successful, ensure to upload the directory with the MD5 file digest to the S3 bucket named
flashcard-imports. - Exec to the server and run
rails flashcard:import_from_s3 "<file_digest>".