Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PIOT-INF-02-001: System Performance #202

Open
labbenchstudios opened this issue Dec 7, 2023 · 0 comments
Open

PIOT-INF-02-001: System Performance #202

labbenchstudios opened this issue Dec 7, 2023 · 0 comments
Labels
documentation Documentation specific requirement

Comments

@labbenchstudios
Copy link
Contributor

labbenchstudios commented Dec 7, 2023

Review

Read Chapter 2 of Programming the Internet of Things.

Objective

Build and test two simple IoT Edge Tier applications. These applications - the Constrained Device App (CDA - written in Python), and the Gateway Device App (GDA - written in Java) - will just collect basic system performance data (e.g. CPU utilization, memory utilization, etc.) at a regular interval and log it using the system logger.

Activities

Implement the CDA in Python and the GDA in Java. Make sure they pass the tests specified in each requirement.

Both applications are very simple yet provide the foundation for the remaining Edge Tier functionality in the remaining exercises. These will read and report on basic system performance parameters, such as CPU utilization and memory utilization.

You may choose to incorporate additional system performance metrics if you'd like.


Lab Module 02

Lab Module 02 - Add System Performance Monitoring to CDA and GDA is focused on adding initial data generation features to your CDA and GDA. For both applications, you'll add the logic needed to collect basic system performance data and manage a data 'polling' schedule as part of the state of each the application.

Step 1: Read the Lab Module Summary and follow the Configuration steps

  • PIOT-INF-02-001: An overview of this lab module.
  • PIOT-STU-02-001: A summary of lab module and assignment submission instructions for students of Connected Devices.

Step 2: Follow the CDA specific instructions

  • PIOT-CDA-02-000: Git branching instructions.
  • PIOT-CDA-02-001: Review the CDA main application template and test its basic functionality. This will allow the CDA to start and stop the SystemPerformanceManager functionality.
  • PIOT-CDA-02-002: Create the SystemPerformanceManager module. This will be responsible for scheduling system performance data collection tasks.
  • PIOT-CDA-02-003: Connect SystemPerformanceManager to the CDA's main application code.
  • PIOT-CDA-02-004: Create BaseSystemUtilTask. This will be the base class containing core functionality all other system performance tasks will inherit.
  • PIOT-CDA-02-005: Create SystemCpuUtilTask. This will collect CPU utilization metrics from the local system.
  • PIOT-CDA-02-006: Create SystemMemUtilTask. This will collect memory utilization metrics from the local system.
  • PIOT-CDA-02-007: Connect SystemCpuUtilTask and SystemMemUtilTask into SystemPerformanceManager. This will allow SystemPerformanceManager to start and stop the performance monitoring tasks.
  • PIOT-CDA-02-100: Git merge and commit instructions.

Step 3: Follow the GDA specific instructions

  • PIOT-GDA-02-000: Git branching instructions.
  • PIOT-GDA-02-001: Review the GDA main application template and test its basic functionality.
  • PIOT-GDA-02-002: Create the SystemPerformanceManager module. This will be responsible for scheduling system performance data collection tasks.
  • PIOT-GDA-02-003: Connect SystemPerformanceManager to the GDA's main application code. This will allow the GDA to start and stop the SystemPerformanceManager functionality.
  • PIOT-GDA-02-004: Create BaseSystemUtilTask. This will be the base class containing core functionality all other system performance tasks will inherit.
  • PIOT-GDA-02-005: Create SystemCpuUtilTask. This will collect CPU utilization metrics from the local system.
  • PIOT-GDA-02-006: Create SystemMemUtilTask. This will collect memory utilization metrics from the local system.
  • PIOT-GDA-02-007: Connect SystemCpuUtilTask and SystemMemUtilTask into SystemPerformanceManager. This will allow SystemPerformanceManager to start and stop the performance monitoring tasks.
  • PIOT-GDA-02-100: Git merge and commit instructions.

NOTE: Each chapter requires familiarity with source code version control using Git. If you're unfamiliar with Git, Git branching, or merging, Atlassian has a useful tutorial on these topics, located here: Git Branching

Review the README

  • Please see README.md for further information on, and use of, this content.

Review the LICENSE and USAGE guidelines

  • Please see PIOT-DOC-LIC for license and usage information.
@labbenchstudios labbenchstudios added the documentation Documentation specific requirement label Dec 7, 2023
@labbenchstudios labbenchstudios moved this from Lab Module 01 - Setup to Lab Module 02 - Edge Tier Apps in Programming the IoT - Exercises Kanban Board Dec 7, 2023
@labbenchstudios labbenchstudios changed the title PIOT-INF-02-001 PIOT-INF-02-001: System Performance Jan 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Documentation specific requirement
Projects
Programming the IoT - Exercises Kanba...
  
Lab Module 02 - Edge Tier Apps
Development

No branches or pull requests

1 participant