This is the User Experience (UX) / User Interface (UI) Lab for CIS 411: Systems Analysis and Design for Messiah University
The purpose of this lab is use a modern monitoring tool to diagnose and solve performance issues with an application.
- GitHub account
- Git is installed on your development machine.
- Text editor or other integrated development environment (IDE) for modifying code.
- Node is installed on your development machine.
- New Relic account (instructions included)
After confirming that you can spin up Graphql node application (yes, this is the same one from labs 1 & 4), you will create a New Relic account, then setup up an New Relic agent for node.js to monitor application performance. Once the New Relic monitor is receiving information, then you will run a series of (7 or more) queries and review performance.
Detailed instructions are here, and you are expected to compile your findings into a labreport following this template.
You are expected to create a lab report as a markdown file under the labreports directory using the LAB_[GITHUB Handle].md naming convention in your forked repository. After you have reviewed your work, then you should submit a Pull Request
to this repository with your lab report and any accompanying images/files (e.g., required diagrams). Add the Pull Request
URL into the courseroom LMS (Canvas) for grading.
The following elements have been incorporated into your assignment rubric.
- Justify Findings: Each claim (e.g., Query 1 is the least performant.) is supported by data.
- Investigate Alternatives: All alternative explainations for system performance are considered in addition to system design faults are levied.
- Pattern Recognition: Patterns to queries or response segments may lead to larger conclusions about the system design.
- Data Structures: The data schema of the project can be used to infer the formation of queries and mutations.
- Communication: The markdown file is written according to professional standards by choosing the appropriate markdown elements, links and embedded content.
Lab Specific Help:
New Relic Resources:
- Creating an account
- Installing New Relic nodejs agent
- Introducing Application Performance Monitoring (APM)
Understanding Markdown Syntax
This content is provided under the MIT
license.
Special thanks to Joel Worrall, aka tangollama, for co-developing this course and this lab.
- All the data provided in
testdata.js
is completely fictious, generated by random data generation tools. If you find a real person or email address in this list, let me know and I'll publish an update. It's not in anyone's interest to expose PII (real or randomly generated). - As of the publication of this lab, the New Relic nodejs agent has suboptimal support for GraphQL libraries. Thus the additional code referencing the custom instrumentation capabilities in the New Relic nodejs agent that you'll find in the project code.