Skip to content

Commit 52f78c1

Browse files
authored
Miscellaneous doc cleanup (#3564)
* Miscellaneous doc cleanup PBENCH-1282 This is just merging a random assortment of minor doc changes I've been accumulating for several months, before we package "Server 1.0".
1 parent 491e2f2 commit 52f78c1

File tree

7 files changed

+94
-48
lines changed

7 files changed

+94
-48
lines changed

README.md

+25-20
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,43 @@
22
A Benchmarking and Performance Analysis Framework
33

44
The code base includes three sub-systems. The first is the collection agent,
5-
`pbench-agent`, responsible for providing commands for running benchmarks
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`,
8-
`vmstat`, `perf`, etc.).
9-
10-
The second sub-system is the `pbench-server`, which is responsible for
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.
5+
[Pbench Agent](docs/Agent/agent.md), responsible for collecting configuration
6+
data for test systems, managing the collection of performance tool data from
7+
those systems (`sar`, `vmstat`, `perf`, etc.), and executing and postprocessing
8+
standardized or arbitrary benchmarked workloads (`uperf`, `fio`, `linpack`, as
9+
well as real system activity).
10+
11+
The second sub-system is the [Pbench Server](docs/Server/server.md), which is
12+
responsible for archiving result tar balls and providing a secure
13+
[RESTful API](docs/Server/API/README.md) to client applications, such as the
14+
Pbench Dashboard. The API supports curation of results data, the ability to
15+
annotate results with arbitrary metadata, and to explore the results and
16+
collected data.
17+
18+
The third sub-system is the [Pbench Dashboard](docs/Dashboard/user_guide.md), which
19+
provides a web-based GUI for the Pbench Server allowing users to list and view
20+
public results. After logging in, users can view their own results, publish
21+
results for others to view, and delete results which are no longer of use.
22+
On the _User Profile_ page, a logged-in user can generate API keys for use with
23+
the Pbench Server API or with the Agent `pbench-results-move` command. The
24+
Pbench Dashboard also serves as a platform for exploring and visualizing result
25+
data.
2426

2527
## How is it installed?
2628
Instructions for installing `pbench-agent`, can be found
2729
in the Pbench Agent [Getting Started Guide](
2830
https://distributed-system-analysis.github.io/pbench/gh-pages/start.html).
2931

30-
For Fedora, CentOS, and RHEL users, we have made available [COPR
32+
For Fedora, CentOS, and RHEL users, we have made available [COPR RPM
3133
builds](https://copr.fedorainfracloud.org/coprs/ndokos/pbench/) for the
3234
`pbench-agent` and some benchmark and tool packages.
3335

3436
You might want to consider browsing through the [rest of the documentation](
3537
https://distributed-system-analysis.github.io/pbench/gh-pages/doc.html).
3638

39+
You can also use `podman` or `docker` to pull Pbench Agent containers from
40+
[Quay.io](https://quay.io/pbench/).
41+
3742
## How do I use pbench?
3843
Refer to the [Pbench Agent Getting Started Guide](
3944
https://distributed-system-analysis.github.io/pbench/gh-pages/start.html).

docs/Agent/agent.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Pbench Agent
2+
3+
The Pbench Agent manages performance experiments and collects the data for
4+
analysis. The Agent CLI controls the execution of predefined synthetic
5+
benchmarks (such as fio and uperf) and allows execution of generic workloads
6+
(via [pbench-user-benchmark](user-guide/man_page.md#pbench-user-benchmark))
7+
while gathering and managing additional selected performance data
8+
([pbench-register-tool-set](user-guide/man_page.md#pbench-register-tool-set)).
9+
10+
For more information, see [Getting Started](user-guide/getting_started.md)
11+
and [Man Page](user-guide/man_page.md).

docs/Dashboard/user_guide.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Pbench Dashboard
1+
# Pbench Dashboard
22

33
Pbench Dashboard is the web-based platform for consuming indexed performance benchmark data. It provides data curation capabilities for the performance datasets.
44

@@ -15,13 +15,10 @@ It has three components.
1515
- *Saved Runs* lists the saved runs which can be published to share with others
1616
- *Expiring Runs* lists the saved runs which will be deleted from the server within the next 20 days
1717

18-
1918
![Overview](assets/images/Overview.png)
2019

21-
22-
The *User Profile* page can be used to view profile information from the OIDC authentication as well as to view and manage Pbench Server API keys. This page is accessed by selecting the *My profile* option from the dropdown menu activated by clicking on the username at the right end of the header bar.
20+
The _User Profile_ page can be used to view profile information from the OIDC authentication as well as to view and manage Pbench Server API keys. This page is accessed by selecting the *My profile* option from the dropdown menu activated by clicking on the username at the right end of the header bar.
2321

2422
From this page, Pbench Server API keys can be created by clicking on the *New API Key* button; existing keys are listed with their labels and creation dates; and, the keys can be copied or deleted using the icon buttons.
2523

2624
![User Profile](assets/images/UserProfile.png)
27-

docs/Server/API/README.md

-20
This file was deleted.

docs/Server/API/access_model.md

+26-3
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,35 @@ Any client, regardless of authentication, is able to READ a dataset with the
1717
`access` property set to `"public"`. Only the owner of the dataset, or a user with
1818
the administrator *role*, can UPDATE or DELETE the dataset.
1919

20+
## User Identity
21+
22+
The Pbench Server must be configured with an external OIDC identity provider,
23+
such as Red Hat, Google, or GitHub. The Pbench Server authenticates user access
24+
by validating signed OIDC JWT tokens. The token's encoded `sub` field is the
25+
primary "user ID" controlling ownership of and access to data. The Pbench
26+
Server caches each token's `sub` UUID and `preferred_username` to translate
27+
user ID values back into human readable form.
28+
2029
## Roles
2130

2231
The Pbench Server access model allows assigning an `ADMIN` role to one or more
23-
user accounts through the OIDC identity provider. These users will be granted
24-
full CRUD access to all server data, including all datasets, server settings,
25-
and audit logs.
32+
user accounts. These users will be granted full CRUD access to all server data,
33+
including all datasets, server settings, and audit logs.
34+
35+
In Pbench Server 1.0, there are two ways to assign the `ADMIN` role to a user:
36+
37+
If you have administrative access to the OIDC client configuration, you cay add
38+
the `ADMIN` role token to the audience field that will be encoded into the JWT
39+
token under the `resource_access` field.
40+
41+
Or you can add the `admin-role` configuration variable in the `pbench-server`
42+
section of the server's `/opt/pbench-server/lib/config/pbench-server.cfg` file,
43+
set to a list of OIDC `preferred_username` values: for example,
44+
45+
```
46+
[pbench-server]
47+
admin-role = dave,webb
48+
```
2649

2750
## Groups
2851

docs/Server/API/api.md

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Pbench Server API documentation
2+
3+
The Pbench Server API provides a RESTful HTTPS interface to curated Pbench
4+
performance data for use by the UI dashboard as well as any other web clients.
5+
6+
The performance results data associated with an experiment is collectively
7+
referred to as a "dataset". The dataset resource is initially defined by the
8+
".tar.xz" tar ball uploaded to the Pbench Server. The server extracts and
9+
creates metadata describing the dataset, and (if appropriate) indexes synthetic
10+
benchmark data in Elasticsearch to support later analysis.
11+
12+
The [V1 API](V1/README.md) provides access to the original tar ball, the
13+
original performance results file structure within the tarball, Pbench Server
14+
[metadata](metadata.md), and the Elasticsearch indexed data.
15+
16+
The Pbench Server APIs accept parameters from a variety of sources. See the
17+
individual API documentation for details.
18+
1. Some parameters, especially "resource ids", are embedded in the URI, such as
19+
`/api/v1/datasets/<resource_id>`;
20+
2. Some parameters are passed as query parameters, such as
21+
`/api/v1/datasets?filter=server.benchmark:fio`;
22+
3. For `PUT` and `POST` APIs, some parameters may be passed as a JSON
23+
(`application/json` content type) request payload, such as
24+
`{"metadata": {"dataset.name": "new name"}}` or as an `application/octet-stream`
25+
byte stream, such as uploading a new results tarball file.

docs/Server/server.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Pbench Server
2+
3+
The Pbench Server stores performance experiment results data and provides a set
4+
set of [RESTful APIs](API/api.md) to support management and exploration of that
5+
data with access controls.

0 commit comments

Comments
 (0)