@@ -3,34 +3,33 @@ A Benchmarking and Performance Analysis Framework
33
44The code base includes three sub-systems. The first is the collection agent,
55` pbench-agent ` , responsible for providing commands for running benchmarks
6- across one or more systems, while properly collecting the configuration data
7- for those systems, and specified telemetry or data from various tools (` sar ` ,
6+ across one or more systems while properly collecting the configuration data for
7+ those systems as well as specified telemetry or data from various tools (` sar ` ,
88` vmstat ` , ` perf ` , etc.).
99
1010The second sub-system is the ` pbench-server ` , which is responsible for
11- archiving result tar balls, indexing them, and unpacking them for display.
12-
13- The third sub-system is the ` web-server ` JS and CSS files, used to display
14- various graphs and results, and any other content generated by the
15- ` pbench-agent ` during benchmark and tool post-processing steps.
16-
17- The pbench Dashboard code lives in its own [ repository] (
18- https://github.com/distributed-system-analysis/pbench-dashboard ).
11+ archiving result tar balls, indexing them, and managing access to their
12+ contents.
13+ It provides a RESTful API which can be used by client applications, such as
14+ the Pbench Dashboard, to curate the results as well as to explore their
15+ contents.
16+
17+ The third sub-system is the Pbench Dashboard, which provides a web-based GUI
18+ for the Pbench Server allowing users to list and view public results. After
19+ logging in, users can view their own results, make them available for others
20+ to view, or delete them. On the _ User Profile_ page, a logged-in user can
21+ generate API keys for use with the Pbench Server API or with the Agent
22+ ` pbench-results-push ` command. The Pbench Dashboard also serves as a platform
23+ for exploring and visualizing result data.
1924
2025## How is it installed?
21- Instructions on installing ` pbench-agent ` , can be found
26+ Instructions for installing ` pbench-agent ` , can be found
2227in the Pbench Agent [ Getting Started Guide] (
2328https://distributed-system-analysis.github.io/pbench/gh-pages/start.html ).
2429
2530For Fedora, CentOS, and RHEL users, we have made available [ COPR
2631builds] ( https://copr.fedorainfracloud.org/coprs/ndokos/pbench/ ) for the
27- ` pbench-agent ` , ` pbench-server ` , ` pbench-web-server ` , and some benchmark and
28- tool packages.
29-
30- Install the ` pbench-web-server ` package on the machine from where you want to
31- run the ` pbench-agent ` workloads, allowing you to view the graphs before
32- sending the results to a server, or even if there is no server configured to
33- send results.
32+ ` pbench-agent ` and some benchmark and tool packages.
3433
3534You might want to consider browsing through the [ rest of the documentation] (
3635https://distributed-system-analysis.github.io/pbench/gh-pages/doc.html ).
@@ -47,14 +46,11 @@ main documentation for a super quick set of introductory steps.
4746The latest source code is at
4847https://github.com/distributed-system-analysis/pbench .
4948
50- The pbench dashboard code is maintained separately at
51- https://github.com/distributed-system-analysis/pbench-dashboard .
52-
5349## Is there a mailing list for discussions?
5450
5551Yes, we use [ Google Groups] ( https://groups.google.com/forum/#!forum/pbench )
5652
57- ## How do I report and issue?
53+ ## How do I report an issue?
5854
5955Please use GitHub's [ issues] (
6056https://github.com/distributed-system-analysis/pbench/issues/new/choose ).
@@ -66,7 +62,7 @@ https://github.com/distributed-system-analysis/pbench/projects).
6662Please find projects covering the [ Agent] (
6763https://github.com/distributed-system-analysis/pbench/projects/2 ),
6864[ Server] ( https://github.com/distributed-system-analysis/pbench/projects/3 ) ,
69- [ Dashboard] ( ) https://github.com/distributed-system-analysis/pbench/projects/1 ,
65+ [ Dashboard] ( https://github.com/distributed-system-analysis/pbench/projects/1 ) ,
7066and a project that is named the same as the current [ milestone] (
7167https://github.com/distributed-system-analysis/pbench/milestones ).
7268
@@ -75,7 +71,7 @@ https://github.com/distributed-system-analysis/pbench/milestones).
7571Below are some simple steps for setting up a development environment for
7672working with the Pbench code base. For more detailed instructions on the
7773workflow and process of contributing code to Pbench, refer to the [ Guidelines
78- for Contributing] ( docs/CONTRIBUTING .md ) .
74+ for Contributing] ( docs/Developers/contributing .md ) .
7975
8076### Getting the Code
8177
@@ -103,8 +99,6 @@ python using the python environment short-hands:
10399
104100See https://tox.wiki/en/latest/example/basic.html#a-simple-tox-ini-default-environments .
105101
106- Each time tests are run, the linting steps (` black ` and ` flake8 ` ) are run first.
107-
108102You can provide arguments to the ` tox ` invocation to request sub-sets of the
109103available tests be run.
110104
@@ -132,12 +126,10 @@ Each of the "agent" and "server" tests can be further subsetted as follows:
132126
133127 * server
134128 * python -- runs the python tests (via python)
135- * legacy -- runs the legacy tests
136129
137130For example:
138131
139132 * ` tox -- agent legacy ` -- run agent legacy tests
140- * ` tox -- server legacy ` -- run server legacy tests
141133 * ` tox -- server python ` -- run server python tests (via ` pytest ` )
142134
143135For any of the test sub-sets on either the agent or server sides of the tree,
@@ -146,7 +138,6 @@ allows one to request a specific test, or set of tests, or command line
146138parameters to modify the test behavior:
147139
148140 * ` tox -- agent bench-scripts test-CL ` -- run bench-scripts' test-CL
149- * ` tox -- server legacy test-28 test-32 ` -- run server legacy tests 28 & 32
150141 * ` tox -- server python -v ` -- run server python tests verbosely
151142
152143For the ` agent/bench-scripts ` tests, one can run entire sub-sets of tests using
@@ -158,18 +149,23 @@ a sub-directory name found in `agent/bench-scripts/tests`. For example:
158149The first runs all the ` pbench-fio ` tests, while the second runs all the
159150` pbench-uperf ` and ` pbench-linpack ` tests.
160151
152+ You can run the ` build.sh ` script to execute the linters, to run the unit tests
153+ for the Agent, Server, and Dashboard code, and to build installations for the
154+ Agent, Server, and Dashboard.
155+
161156Finally, see the ` jenkins/Pipeline.gy ` file for how the unit tests are run in
162157our CI jobs.
163158
164159### Python formatting
165160
166- This project uses the [ flake8] ( http://flake8.pycqa.org/en/latest ) method of code
161+ This project uses the [ ` flake8 ` ] ( http://flake8.pycqa.org/en/latest ) method of code
167162style enforcement, linting, and checking.
168163
169164All python code contributed to pbench must match the style requirements. These
170- requirements are enforced by the [ pre-commit] ( https://pre-commit.com ) hook
171- using the [ black] ( https://github.com/psf/black ) Python code formatter and the
172- [ isort] ( https://github.com/pycqa/isort ) Python import sorter.
165+ requirements are enforced by the [ pre-commit] ( https://pre-commit.com ) hook. In
166+ addition to ` flake8 ` , pbench uses the [ ` black ` ] ( https://github.com/psf/black )
167+ Python code formatter and the [ ` isort ` ] ( https://github.com/pycqa/isort ) Python
168+ import sorter.
173169
174170### Use pre-commit to set automatic commit requirements
175171
@@ -194,14 +190,11 @@ starting with the `v0.70.0` release (`v<Major>.<Minor>.<Release>[-<Build>]`).
194190Prior to the v0.70.0 release, the scheme used was mostly ` v<Major>.<Minor> ` ,
195191where we only had minor releases (` Major = 0 ` ).
196192
197- The practice of using ` -agent ` or ` -server ` is also ending with the ` v0.70.0 `
198- release.
199-
200193### Container Image Tags
201194This same GitHub "tag" scheme is used with tags applied to container images
202195we build, with the following exceptions for tag names:
203196
204- * ` latest ` - always points to the " latest" container image pushed to a
197+ * ` latest ` - always points to the latest released container image pushed to a
205198 repository
206199
207200 * ` v<Major>-latest ` - always points to the "latest" ` Major ` released
@@ -215,13 +208,9 @@ we build, with the following exceptions for tag names:
215208### References to Container Image Repositories
216209The operation of our functional tests, the Pbench Server "in-a-can" used in
217210the functional tests, and other verification and testing environments use
218- container images from public repositories and non-public ones. The CI jobs
219- obtain references to those repositories using Jenkins credentials. When a
220- developer runs those same jobs locally, you can create two files with the
221- appropriate contents locally:
222-
223- * ` ${HOME}/.config/pbench/ci_registry.name `
224- * ` ${HOME}/.config/pbench/public_registry.name `
211+ container images from remote image registries. The CI jobs
212+ obtain references to those repositories using Jenkins credentials. When
213+ running those same jobs locally, you can provide the registry via
214+ ` ${HOME}/.config/pbench/ci_registry.name ` .
225215
226- If those files are not provided local execution will report an error when those
227- values are missing.
216+ If this file is not provided, local execution will report an error.
0 commit comments