You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Fix minor markdown liniting errors
* Fix remaining markdown linting errors with Claude
* Use callouts for warnings in deprecated metric providers
* Fix linting error - regex of container name
* Add CONTRIBUTING.md - how to add a pre-commit hook for auto-linting
We are super happy if you are interested in contributing to the documentation of the Green Metrics Tool.
4
+
5
+
All contributions should be done via Pull Requests. We use the standard forking workflow for Pull Requests. If you are not familiar with forks, you can find more information e.g. in [GitHub's documentation](https://docs.github.com/en/get-started/exploring-projects-on-github/contributing-to-a-project)
6
+
7
+
## Lint
8
+
9
+
We use [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) for linting the content of the documentation.
10
+
11
+
To check if the content has linting issues you can call
12
+
13
+
```sh
14
+
npm run lint:markdown
15
+
```
16
+
17
+
in the project directory.
18
+
19
+
To automatically resolve fixable issues, use
20
+
21
+
```sh
22
+
npm run lint:markdown-fix
23
+
```
24
+
25
+
We recommend that you set a pre-commit hook to lint and fix issues automatically every time you commit. This can be done by adding
26
+
27
+
```sh
28
+
npm run lint:markdown-fix:staged
29
+
```
30
+
31
+
to a file named `./.git/hooks/pre-commit` and making it executable `chmod +x ./.git/hooks/pre-commit`
Copy file name to clipboardExpand all lines: content/en/docs/cluster/accuracy-control.md
+2-3Lines changed: 2 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,7 @@ When using the *client* mode the cluster expects a *Measurement Control Workload
11
11
This is done by running a defined workload and checking the standard deviation over a defined window of measurements.
12
12
13
13
We recommend having your machines setup with our [NOP Linux changes →]({{< relref "nop-linux" >}}) and utilize the following setting by using our provided control workload:
14
+
14
15
```yml
15
16
cluster:
16
17
client:
@@ -63,6 +64,4 @@ cluster:
63
64
+ `phase` **[str]**: The phase to look at. default is *004_[RUNTIME]*. We do not recommend to change this unless you have a custom defined phase you want to look at.
64
65
+ `metrics` **[dict]**: Contains a dictionary of all the metrics you want to check the STDDEV or relative STDDEV. Every metric is looked at individually and if the thresshold is exceeded of any of them the cluster will pause further job processing. Checks can be either relative or absolute. We recommend using relative where possible and absolute only of you very small values for the relevant metric and even small changes will lead to high relative changes. We further recommend using the default set as defined above if you have these metric providers enabled. If you do not have these providers available we recommend choosing at least one `psu_energy_...` provider that actually measures and does not estimation. The names are found in the *Metric Name* section of the respective metric provider.\
65
66
Example: [RAPL CPU →]({{< relref "/docs/measuring/metric-providers/cpu-energy-RAPL-MSR-component" >}}) is `cpu_energy_rapl_msr_component`
The Green Metrics Tool comes with an implemented queueing and locking mechanism. In contrast to the NOP Linux implementation this way of checking for jobs doesn't poll with a process all the time but relies on cron which is not available on NOP Linux.
79
80
80
81
You can install a cronjob on your system to periodically call:
82
+
81
83
- `python3 -u PATH_TO_GREEN_METRICS_TOOL/tools/jobs.py project`to measure projects in database queue
82
84
- `python3 -u PATH_TO_GREEN_METRICS_TOOL/tools/jobs.py email`to send all emails in the database queue
83
85
@@ -105,6 +107,7 @@ machine:
105
107
base_temperature_chip: "coretemp-isa-0000"
106
108
base_temperature_feature: "Package id 0"
107
109
```
110
+
108
111
The `id` and the `description` must be unique so that they do not conflict with the other machines in the cluster.
109
112
110
113
If you are using the *NOP Linux* setup with the `client.py` service you must also setup the temperature checking. Find out what your system has when it is cool. You can either use our calibration script or just let the machine sit for a while until the temperature does not change anymore. Then set the value `base_temperature_value`. It has no unit, but is rather just a value in degree (°). It should have the same unit as your output of `sensors` on your Linux box.
@@ -114,14 +117,14 @@ Since we are using our [lm_sensors provider →]({{< relref "/docs/measuring/met
114
117
#### Profiling Machines
115
118
116
119
Machines that are intended to create a carbon profile *as it would be seen in a user machine* should have:
120
+
117
121
- Turbo Boost turned on
118
122
- Hyper Threading turned on
119
123
- DVFS turned on
120
124
- Allow C8-C0 states
121
125
122
126
This is the minium set we deem reasonable. Please note that this resembles a user machine the best. For server machines some of these configurations should be changed. For servers Hyper Threading is often turned on whereas DVFS is often turned off.
123
127
124
-
125
128
#### Benchmarking Machines
126
129
127
130
To have the most stable result benchmarking machines or if you want to use Container Energy Estimations based on CPU Utilization you should have:
@@ -133,7 +136,7 @@ To have the most stable result benchmarking machines or if you want to use Conta
133
136
134
137
All of these settings can be tweaked best in the BIOS. Additionally for turning DVFS off we recommend booting the kernel with `intel_pstate` CPU frequency driver deactived and using the `acpi` one which allows for setting the `userspace` govenor.
135
138
136
-
```
139
+
```bash
137
140
$ sudo nano /etc/default/grub
138
141
139
142
# Change this line
@@ -174,4 +177,3 @@ The GMT refers to *client* when it is talking about the settings for the `client
174
177
When using the *client* mode the cluster expects a *Measurement Control Workload* to be set to determine if the cluster accuracy has deviated from the expected baseline.
175
178
176
179
Please see [Accuracy Control →]({{< relref "accuracy-control" >}}) for details.
Copy file name to clipboardExpand all lines: content/en/docs/cluster/nop-linux.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ We recommend tuning the Linux OS on all linux measurement machines that you have
13
13
The following script configures an Ubuntu 22.04+ system to have no active timers running, remove all unneeded services and disable also
14
14
NTP.
15
15
16
-
The goal is to keep the system still very close to a production / user setup, but remove invariances from the system without
16
+
The goal is to keep the system still very close to a production / user setup, but remove invariances from the system without
17
17
decreasing idle power draw and skewing results.
18
18
19
19
Please further note that you must execute certain service still periodically. The [client.py](https://github.com/green-coding-solutions/green-metrics-tool/blob/main/cron/client.py) cluster service will periodically run [a cleanup script](https://github.com/green-coding-solutions/green-metrics-tool/blob/main/tools/cluster/cleanup_original.py)
Copy file name to clipboardExpand all lines: content/en/docs/cluster/observability.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,8 +29,9 @@ To provide insights and execute net-gain analysis we provide an extension to the
29
29
In essence it is an aggregate dashboard that gathers all energy and carbon data from our tools that submit their data to the GMT API.
30
30
31
31
In the *CarbonDB Dashboard* you can find:
32
+
32
33
- CI/CD energy and carbon data from Eco-CI
33
34
- Benchmarking energy and carbon data from Green Metrics Tool runs
34
35
- Developer machine energy and carbon data from PowerHOG
35
-
- Custom energy and carbon data from [CarbonDB Agents](https://github.com/green-coding-solutions/carbondb-agent) configured
36
-
- A typical setup for instance is to install a [CarbonDB Agent](https://github.com/green-coding-solutions/carbondb-agent) on the database server as well as the Frontend / Dashboard server
36
+
- Custom energy and carbon data from [CarbonDB Agents](https://github.com/green-coding-solutions/carbondb-agent) configured
37
+
- A typical setup for instance is to install a [CarbonDB Agent](https://github.com/green-coding-solutions/carbondb-agent) on the database server as well as the Frontend / Dashboard server
Copy file name to clipboardExpand all lines: content/en/docs/cluster/user-management.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,6 +6,7 @@ weight: 1005
6
6
---
7
7
8
8
In the FOSS version of GMT only two base users are configured and every action can be executed with them:
9
+
9
10
- USER 1 - The default user
10
11
- USER 0 - The GMT system user running control workloads and sending e-mails
11
12
@@ -29,11 +30,12 @@ Here is an example cURL request:
29
30
-H "X-Authentication: ${API_TOKEN}"
30
31
```
31
32
32
-
**Important:** If no *X-Authentication* header is supplied the API will still authenticate *USER 1* by default.
33
+
**Important:** If no *X-Authentication* header is supplied the API will still authenticate *USER 1* by default.
33
34
34
35
## Features of User Management
35
36
36
37
For complex usage cases GMT comes with a user management system that allows:
38
+
37
39
- Restricting certain routes to view content (GET)
38
40
- Restricting certain routes for submission of measurements, CI runs, Hog Data etc. (POST)
39
41
- Allowing longer / shorter data retention times for certain users
@@ -47,4 +49,4 @@ For complex usage cases GMT comes with a user management system that allows:
47
49
Please note that the user management system is bundled with GMT but managed and fully documented as part of the [Enterprise](https://www.green-coding.io/products/green-metrics-tool/) package.
48
50
Furthermore many features like needed maintenance jobs / cron jobs and ACL generators are only shipped with the [Enterprise](https://www.green-coding.io/products/green-metrics-tool/) version.
49
51
50
-
We believe that user management is only needed in bigger corporate settings and thus we encourage you to support this project by considering upgrading to a [paid version](https://www.green-coding.io/products/green-metrics-tool) which includes the User Management either included in the SaaS version or the Enterprise version.
52
+
We believe that user management is only needed in bigger corporate settings and thus we encourage you to support this project by considering upgrading to a [paid version](https://www.green-coding.io/products/green-metrics-tool) which includes the User Management either included in the SaaS version or the Enterprise version.
0 commit comments