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
Copy file name to clipboardExpand all lines: docs/CONTRIBUTING.md
+15-1Lines changed: 15 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,4 +46,18 @@ Gomega/Ginkgo tests are preferred, but other style of tests are also welcome.
46
46
47
47
- Add documentation for new features.
48
48
49
-
- Your contribution will be reviewed by the project maintainers once the PR is marked as ready for review.
49
+
- Your contribution will be reviewed by the project maintainers once the PR is marked as ready for review.
50
+
51
+
## Documentation guidelines
52
+
53
+
The markdown documentation is aimed to be browsed on GitHub, but it also on the aggregated [FLP documentation](https://alice-flp.docs.cern.ch) based on [MkDocs](https://www.mkdocs.org/).
54
+
Consequently, any changes in the documentation structure should be reflected in the Table of Contents in the main README.md, as well as `mkdocs.yml` and `mkdocs.yml`.
55
+
56
+
The AliECS MkDocs documentation is split into two aforementioned files to follow the split between "Products" and "Developers" tabs in the FLP documentation.
57
+
The `mkdocs-dev.yml` uses a symlink `aliecs-dev` to `aliecs` directory to avoid complaints about duplicated site names.
58
+
59
+
Because of the dual target of the documentation, the points below are important to keep in mind:
60
+
61
+
- Absolute paths in links to other files do not always work, they should be avoided.
62
+
- When referencing source files in the repository, use full URIs to GitHub.
63
+
- In MkDocs layouts, one cannot reference specific sections within markdown files. Only links to entire markdown files are possible.
Copy file name to clipboardExpand all lines: docs/building.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -84,6 +84,6 @@ You should find several executables including `o2control-core`, `o2control-execu
84
84
85
85
For subsequent builds (after the first one), plain `make` (instead of `make all`) is sufficient. See the [Makefile reference](makefile_reference.md) for more information.
86
86
87
-
If you wish to also build the process control library and/or plugin, see [the OCC readme](/occ/README.md).
87
+
If you wish to also build the process control library and/or plugin, see [the OCC readme](../occ/README.md).
88
88
89
89
This build of AliECS can be run locally and connected to an existing O²/FLP Suite cluster by passing a `--mesosUrl` parameter. If you do this, remember to `systemctl stop o2-aliecs-core` on the head node, in order to stop the core that came with the O²/FLP Suite and use your own.
Copy file name to clipboardExpand all lines: docs/handbook/configuration.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -199,7 +199,7 @@ for examples of call roles that reference a variety of integration plugins.
199
199
The state machine callback moments are exposed to the AliECS workflow template interface and can be used as triggers or synchronization points for integration plugin function calls. The `call` block can be used for this purpose, with similar syntax to the `task` block used for controllable tasks. Its fields are as follows.
200
200
201
201
* `func` - mandatory, it parses as an [`antonmedv/expr`](https://github.com/antonmedv/expr) expression that corresponds to a call to a function that belongs to an integration plugin object (e.g. `bookkeeping.StartOfRun()`, `dcs.EndOfRun()`, etc.).
202
-
* `trigger` - mandatory, the expression at `func` will be executed once the state machine reaches this moment. For possible values, see [State machine triggers](/docs/handbook/operation_order.md#state-machine-triggers)
202
+
* `trigger` - mandatory, the expression at `func` will be executed once the state machine reaches this moment. For possible values, see [State machine triggers](operation_order.md#state-machine-triggers)
203
203
* `await` - optional, if absent it defaults to the same as `trigger`, the expression at `func` needs to finish by this moment, and the state machine will block until `func` completes.
204
204
* `timeout` - optional, Go `time.Duration` expression, defaults to `30s`, the maximum time that `func` should take. The value is provided to the plugin via `varStack["__call_timeout"]` and the plugin should implement a timeout mechanism. The ECS will not abort the call upon reaching the timeout value!
205
205
* `critical` - optional, it defaults to `true`, if `true` then a failure or timeout for `func` will send the environment state machine to `ERROR`.
Copy file name to clipboardExpand all lines: docs/handbook/operation_order.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Environment operation order
2
2
3
3
This chapter attempts to document the order of important operations done during environment transitions.
4
-
Since AliECS is an evolving system, the information presented here might be out-of-date, thus please refer to event handling in [core/environment/environment.go](https://github.com/AliceO2Group/Control/blob/master/core/environment/environment.go) and plugin calls in [ControlWorkflows/workflows/readout-dataflow.yaml](https://github.com/AliceO2Group/ControlWorkflows/blob/master/workflows/readout-dataflow.yaml) for the ultimate source of truth.
4
+
Since AliECS is an evolving system, the information presented here might be out-of-date, thus please refer to event handling in [environment.go][https://github.com/AliceO2Group/Control/blob/master/core/environment/environment.go) and plugin calls in [ControlWorkflows/workflows/readout-dataflow.yaml](https://github.com/AliceO2Group/ControlWorkflows/blob/master/workflows/readout-dataflow.yaml) for the ultimate source of truth.
5
5
Also, please report to the ECS developers any inaccuracies.
Copy file name to clipboardExpand all lines: docs/metrics.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -59,7 +59,7 @@ ECS and aliecs.run are values.
59
59
6) space - divides fields and timestamp
60
60
7) timestamp - (optional) int64 value of unix timestamp in ns
61
61
62
-
In order to provide support for this format we introduced Metric structure in [common/monitoring/metric.go](../common/monitoring/metric.go).
62
+
In order to provide support for this format we introduced Metric structure in [common/monitoring/metric.go](https://github.com/AliceO2Group/Control/blob/master/common/monitoring/metric.go).
63
63
Following code shows how to create a Metric with `measurement` as measurement name,
64
64
one tag `tag1=val1` and field `field1=42u`:
65
65
@@ -70,7 +70,7 @@ m.SetFieldUInt64("field1", 42)
70
70
```
71
71
72
72
However we also need to be able to store metrics, so these can be scraped correctly.
73
-
This mechanism is implemented in [common/monitoring/monitoring.go](../common/monitoring/monitoring.go).
73
+
This mechanism is implemented in [common/monitoring/monitoring.go](https://github.com/AliceO2Group/Control/blob/master/common/monitoring/monitoring.go).
74
74
Metrics endpoint is run by calling `Run(port, endpointName)`. As this method is blocking
75
75
it is advised to call it from `goroutine`. After this method is called we can than send
76
76
metrics via methods `Send` and `SendHistogrammable`. If you want to send simple metrics
@@ -92,7 +92,7 @@ Example for this use-case is duration of some function,
92
92
eg. measure sending batch of messages. If we want the best coverage of metrics possible
93
93
we can combine both of these to measure amount of messages send per batch and
94
94
also measurement duration of the send. For example in code you can take a look actual
95
-
actual code in [writer.go](../common/event/writer.go) where we are sending multiple
95
+
actual code in [writer.go](https://github.com/AliceO2Group/Control/blob/master/common/event/writer.go) where we are sending multiple
96
96
fields per metric and demonstrate full potential of these metrics.
97
97
98
98
Previous code example will result in following metrics to be reported:
@@ -203,7 +203,7 @@ if different points, but creating statistical report as mentioned in previous pa
203
203
### Event loop
204
204
205
205
In order to send metrics from unlimited amount of goroutines, we need to have
206
-
robust and thread-safe mechanism. It is implemented in [common/monitoring/monitoring.go](../common/monitoring/monitoring.go)
206
+
robust and thread-safe mechanism. It is implemented in [common/monitoring/monitoring.go](https://github.com/AliceO2Group/Control/blob/master/common/monitoring/monitoring.go)
207
207
as event loop (`eventLoop`) that reads data from two buffered channels (`metricsChannel` and `metricsHistosChannel`)
208
208
with one goroutine. Apart from reading messages from these two channels event loop also handles
209
209
scraping requests from `http.Server` endpoint. As the http endpoint is called by a
@@ -219,8 +219,8 @@ which are consumed by event loop.
219
219
In order to correctly implement behaviour described in the part about Aggregation
220
220
we use the same implementation in two container aggregating objects
221
221
`MetricsAggregate`, `MetricsReservoirSampling` implemented in files
Copy file name to clipboardExpand all lines: hacking/COG.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
@@ -44,11 +44,11 @@ In production, AliECS will manage and push all configuration to active tasks, bu
44
44
45
45
Every task still has their own configuration file, with paths such as `/etc/flp.d/qc/*.json` for QualityControl and `/home/flp/readout.cfg` for Readout. These paths can be edited by the user, and any changes affect all newly launched instances of the task.
46
46
47
-
All configuration file paths used by tasks can be found in the task descriptors of the workflow configuration repository in use. For more information on workflow configuration repositories, see [the `coconut repository` reference](/coconut/doc/coconut_repository.md). The default workflow configuration repository which comes pre-loaded with AliECS is accessible at [AliceO2Group/ControlWorkflows](https://github.com/AliceO2Group/ControlWorkflows) (all task descriptor files are found in the `tasks` directory).
47
+
All configuration file paths used by tasks can be found in the task descriptors of the workflow configuration repository in use. For more information on workflow configuration repositories, see [the `coconut repository` reference](../coconut/doc/coconut_repository.md). The default workflow configuration repository which comes pre-loaded with AliECS is accessible at [AliceO2Group/ControlWorkflows](https://github.com/AliceO2Group/ControlWorkflows) (all task descriptor files are found in the `tasks` directory).
48
48
49
49
***modify an existing workflow or task?**
50
50
51
-
You are free to keep as many workflow configuration repositories as you wish in your AliECS instance. For more information on workflow configuration repositories, see [the `coconut repository` reference](/coconut/doc/coconut_repository.md).
51
+
You are free to keep as many workflow configuration repositories as you wish in your AliECS instance. For more information on workflow configuration repositories, see [the `coconut repository` reference](../coconut/doc/coconut_repository.md).
52
52
53
53
Changes to a configuration repository are immediately available after running `coconut repo refresh`. There is no support in the AliECS GUI at this time.
0 commit comments