-
Notifications
You must be signed in to change notification settings - Fork 2
Feature Architecture
This section focuses on the design of the different NoisePage testing features and tools. The different features are:
This depicts the different runtime components and how they interact.
There are two different pipelines in Jenkins, the nightly pipeline and the Terrier(CI) pipeline.
The nightly pipeline is responsible for gathering metrics on the production-ready system. It executes several stages and sends the results for each stage to the performance storage service.
The CI pipeline has several stages that test whether the code is safe to merge into the master branch. It runs unit tests, E2E tests, and performance tests. The performance test results are sent to the performance storage service to allow comparisons between PR branch performance and master branch performance.
The performance storage service validates and parses the data. It then stores the data in TimescaleDB.
This is the complete module dependency diagram for the performance storage service. For easier to read diagrams see the module views in each feature's architecture page.
This is the main datastore for test results and metrics.
Grafana queries the database and displays visualization dashboards of the results.
The performance storage service interacts with Github through the Github API and through an events hook via a Github bot.
The performance storage service creates pull request check runs (statuses) via the Github REST API.
The Github bot also called a Github app is a configuration stored on Github. It dictates where events are sent and which events to subscribe to. These events include when a PR is opened, closed, or when the CI posts a status for a PR.