Control

module
v1.41.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 14, 2025 License: GPL-3.0

README

JIRA godoc

AliECS

The ALICE Experiment Control System (AliECS) is the piece of software to drive and control data taking activities in the experiment. It is a distributed system that combines state of the art cluster resource management and experiment control functionalities into a single comprehensive solution.

Please refer to the CHEP 2023 paper for the latest design overview.

How to get started

Regardless of your particular interests, it is recommended to get acquainted with the main AliECS concepts.

After that, please find your concrete use case:

I want to run AliECS and other O²/FLP software

See O²/FLP Suite deployment instructions

These instructions apply to both single-node and multi-node deployments. Contact alice-o2-flp-support for assistance with provisioning and deployment.

There are two ways of interacting with AliECS:

  • The AliECS GUI (a.k.a. Control GUI, COG) - not in this repository, but included in most deployments, recommended

    AliECS GUI documentation

  • coconut - the command-line control and configuration utility, included with AliECS core, typically for developers and advanced users

    Using coconut

    coconut command reference

I want to ensure AliECS can run and control my process
  • My software is based on FairMQ and/or O² DPL (Data Processing Later)

    AliECS natively supports FairMQ (and DPL) devices. Head to ControlWorkflows for instructions on how to configure your software to be controlled by AliECS.

  • My software does not use FairMQ and/or DPL, but should be controlled through a state machine

    See the OCC documentation to learn how to integrate the O² Control and Configuration library with your software. Readout is an example of this setup.

    Once ready, head to ControlWorkflows for instructions on how to configure it to be controlled by AliECS.

  • My software is a command line utility with no state machine

    AliECS natively supports generic commands. Head to ControlWorkflows for instructions to have your command ran by AliECS. Make sure the task template for your command sets the control mode to basic (see example).

I want to develop AliECS

🛠 Welcome to the team, please head to contributing instructions

I want to receive updates about environments or services controlled by AliECS

📟 Learn more about the kafka event service

I want my application to send requests to AliECS

📜 See the API docs of AliECS components:

I want my service to be sent requests by AliECS

🔌 Learn more about the plugin system

Table of Contents

Directories

Path Synopsis
docs
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
remote
A Processor and ReposItory for COnfiguration Templates
A Processor and ReposItory for COnfiguration Templates
cmd
coconut command
o2-aliecs-core command
o2-apricot command
peanut command
Package coconut implements the O² Control and Configuration Utility.
Package coconut implements the O² Control and Configuration Utility.
app
cmd
Package cmd contains all the entry points for command line subcommands, following library convention.
Package cmd contains all the entry points for command line subcommands, following library convention.
configuration
Package configuration handles the details of interfacing with the O² Configuration store.
Package configuration handles the details of interfacing with the O² Configuration store.
control
Package control handles the details of control calls to the O² Control core.
Package control handles the details of control calls to the O² Control core.
doc command
Package common serves as a catch-all package for sharing types between O² Control components.
Package common serves as a catch-all package for sharing types between O² Control components.
controlmode
Package controlmode contains some enums for switching between executor process control modes.
Package controlmode contains some enums for switching between executor process control modes.
gera
Package gera implements a hierarchical key-value store.
Package gera implements a hierarchical key-value store.
logger
Package logger is a convenience wrapper package for using logrus in O² Control.
Package logger is a convenience wrapper package for using logrus in O² Control.
cfgbackend
Package configuration defines the Source interface as the main access point to O² Configuration backends.
Package configuration defines the Source interface as the main access point to O² Configuration backends.
controlcommands
Package controlcommands defines the Command interface, plus several types including MesosCommand, MesosCommandResponse and related.
Package controlcommands defines the Command interface, plus several types including MesosCommand, MesosCommandResponse and related.
environment
Package environment defines Environment, environment.Manager and other types and methods related to handling O² environments.
Package environment defines Environment, environment.Manager and other types and methods related to handling O² environments.
metrics
Deprecated: package metrics is being phased out, don't use it.
Deprecated: package metrics is being phased out, don't use it.
task
Package task defines the Task type and its Manager, with the purpose of handling the lifetime of O² Task objects.
Package task defines the Task type and its Manager, with the purpose of handling the lifetime of O² Task objects.
task/constraint
Package constraint implements support for predicates on agent attributes.
Package constraint implements support for predicates on agent attributes.
the
workflow
Package workflow defines the Role interface, along with tooling to build the control tree.
Package workflow defines the Role interface, along with tooling to build the control tree.
Package executor implements the O² Control executor binary.
Package executor implements the O² Control executor binary.
executorcmd
Package executorcmd contains the gRPC client, as well as facilities for processing and committing incoming transition events.
Package executorcmd contains the gRPC client, as well as facilities for processing and committing incoming transition events.
executorcmd/transitioner
Package transitioner defines the Transitioner interface, as well as its implementations in order to translate between internal O² state machine states and events, and the states and events of some other process state machine (such as the FairMQ Device state machine).
Package transitioner defines the Transitioner interface, as well as its implementations in order to translate between internal O² state machine states and events, and the states and events of some other process state machine (such as the FairMQ Device state machine).
occ
peanut/flatten
Flatten makes flat, one-dimensional maps from arbitrarily nested ones.
Flatten makes flat, one-dimensional maps from arbitrarily nested ones.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL