Control

module
v1.42.0 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 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
Package apricot implements the ALICE configuration service with templating, load balancing and caching capabilities on top of the configuration store.
Package apricot implements the ALICE configuration service with templating, load balancing and caching capabilities on top of the configuration store.
cacheproxy
Package cacheproxy provides a caching proxy implementation for the configuration service, optimizing detector inventory lookups.
Package cacheproxy provides a caching proxy implementation for the configuration service, optimizing detector inventory lookups.
docs
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
local
Package local implements a local configuration backend for the configuration service, providing direct access to the backend storage without gRPC.
Package local implements a local configuration backend for the configuration service, providing direct access to the backend storage without gRPC.
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
Package app provides application constants and metadata for the coconut command line interface and its components.
Package app provides application constants and metadata for the coconut command line interface and its components.
cmd
Package cmd implements the command line interface for coconut, providing various subcommands for managing O² Control environments and configurations.
Package cmd implements the command line interface for coconut, providing various subcommands for managing O² Control environments and configurations.
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.
event
Package event provides event publishing and streaming functionality for O² Control components, supporting Kafka and dummy event writers.
Package event provides event publishing and streaming functionality for O² Control components, supporting Kafka and dummy event writers.
event/topic
Package topic defines constants and types for event system topics.
Package topic defines constants and types for event system topics.
gera
Package gera implements a hierarchical key-value store.
Package gera implements a hierarchical key-value store.
golangmetrics
Package golangmetrics provides Go runtime metrics collection and reporting functionality for monitoring system resource usage and performance.
Package golangmetrics provides Go runtime metrics collection and reporting functionality for monitoring system resource usage and performance.
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.
logger/infologger
Package infologger provides InfoLogger protocol implementation for integration with the ALICE InfoLogger logging system.
Package infologger provides InfoLogger protocol implementation for integration with the ALICE InfoLogger logging system.
monitoring
Package monitoring provides monitoring and metrics collection functionality for O² Control components.
Package monitoring provides monitoring and metrics collection functionality for O² Control components.
product
Package product provides version information and build metadata for O² Control products and components.
Package product provides version information and build metadata for O² Control products and components.
utils
Package utils provides common utility functions for string manipulation, data conversion, and various helper operations used across O² Control components.
Package utils provides common utility functions for string manipulation, data conversion, and various helper operations used across O² Control components.
utils/safeacks
Package safeacks provides thread-safe acknowledgment handling for managing communication between multiple senders and a single receiver.
Package safeacks provides thread-safe acknowledgment handling for managing communication between multiple senders and a single receiver.
utils/uid
Package uid provides unique identifier generation functionality.
Package uid provides unique identifier generation functionality.
Package configuration provides interfaces and implementations for managing runtime configuration of O² Control components and detectors.
Package configuration provides interfaces and implementations for managing runtime configuration of O² Control components and detectors.
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.
componentcfg
Package componentcfg provides component configuration management functionality, including query handling and template processing for O² components.
Package componentcfg provides component configuration management functionality, including query handling and template processing for O² components.
template
Package template provides template processing functionality for configuration files, including custom field handling and template execution.
Package template provides template processing functionality for configuration files, including custom field handling and template execution.
Package core implements the main AliECS core functionality including the gRPC API server, environment management, and integration with various services.
Package core implements the main AliECS core functionality including the gRPC API server, environment management, and integration with various services.
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.
integration
Package integration provides the plugin system for integrating O² Control with external services like DCS, Bookkeeping, ODC, and other ALICE systems.
Package integration provides the plugin system for integrating O² Control with external services like DCS, Bookkeeping, ODC, and other ALICE systems.
integration/bookkeeping
Package bookkeeping provides integration with the ALICE Bookkeeping system for tracking runs and retrieving LHC fill information.
Package bookkeeping provides integration with the ALICE Bookkeeping system for tracking runs and retrieving LHC fill information.
integration/ccdb
Package ccdb provides integration with the Condition and Calibration Database (CCDB) for creating and managing General Run Parameters (GRP) objects.
Package ccdb provides integration with the Condition and Calibration Database (CCDB) for creating and managing General Run Parameters (GRP) objects.
integration/dcs
Package dcs provides integration with the ALICE Detector Control System (DCS) for managing detector operations and state compatibility checks.
Package dcs provides integration with the ALICE Detector Control System (DCS) for managing detector operations and state compatibility checks.
integration/ddsched
Package ddsched provides integration with the Data Distribution (DD) scheduler for managing the pool of FLPs participating in data taking operations.
Package ddsched provides integration with the Data Distribution (DD) scheduler for managing the pool of FLPs participating in data taking operations.
integration/odc
Package odc provides integration with the Online Device Control (ODC) system for managing the ALICE event processing farm during data taking and offline processing.
Package odc provides integration with the Online Device Control (ODC) system for managing the ALICE event processing farm during data taking and offline processing.
integration/testplugin
Package testplugin provides a test integration plugin that serves as an example and is used for testing the plugin system functionality.
Package testplugin provides a test integration plugin that serves as an example and is used for testing the plugin system functionality.
integration/trg
Package trg provides integration with the ALICE trigger system.
Package trg provides integration with the ALICE trigger system.
metrics
Deprecated: package metrics is being phased out, don't use it.
Deprecated: package metrics is being phased out, don't use it.
repos
Package repos provides repository management functionality for accessing and synchronizing Git repositories containing workflow templates and configurations.
Package repos provides repository management functionality for accessing and synchronizing Git repositories containing workflow templates and configurations.
repos/varsource
Package varsource provides variable source management functionality for tracking the origin and precedence of configuration variables in workflows.
Package varsource provides variable source management functionality for tracking the origin and precedence of configuration variables in workflows.
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/channel
Package channel provides functionality for managing task communication channels, including inbound and outbound channel configuration and message routing.
Package channel provides functionality for managing task communication channels, including inbound and outbound channel configuration and message routing.
task/constraint
Package constraint implements support for predicates on agent attributes.
Package constraint implements support for predicates on agent attributes.
task/schedutil
Package schedutil provides scheduler utility functions for Apache Mesos integration, including resource management and task scheduling helpers.
Package schedutil provides scheduler utility functions for Apache Mesos integration, including resource management and task scheduling helpers.
task/sm
Package sm provides state machine functionality for task lifecycle management, including state transitions and event handling.
Package sm provides state machine functionality for task lifecycle management, including state transitions and event handling.
task/taskclass
Package taskclass provides task class definitions and resource management for different types of tasks.
Package taskclass provides task class definitions and resource management for different types of tasks.
task/taskclass/port
Package port provides port range management functionality for task communication, including port range parsing and validation.
Package port provides port range management functionality for task communication, including port range parsing and validation.
task/taskop
Package taskop provides task operation types and message handling functionality for controlling task lifecycle and communication.
Package taskop provides task operation types and message handling functionality for controlling task lifecycle and communication.
the
Package the provides global event handling and state management for the core system, including event writers and system-wide notifications.
Package the provides global event handling and state management for the core system, including event writers and system-wide notifications.
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.
workflow/callable
Package callable provides utility functions for workflow callable operations, including timeout handling and trigger expression parsing.
Package callable provides utility functions for workflow callable operations, including timeout handling and trigger expression parsing.
Package executor implements the O² Control executor binary.
Package executor implements the O² Control executor binary.
executable
Package executable provides platform-specific executable management functionality for running and controlling tasks in the executor environment.
Package executable provides platform-specific executable management functionality for running and controlling tasks in the executor environment.
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/nopb
Package nopb provides non-protobuf encoding functionality including JSON codec implementations for gRPC communication.
Package nopb provides non-protobuf encoding functionality including JSON codec implementations for gRPC communication.
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).
executorutil
Package executorutil provides utility functions for the executor, including resource management and task execution helpers.
Package executorutil provides utility functions for the executor, including resource management and task execution helpers.
occ
peanut
Package peanut implements a process execution and control utility for OCClib-based O² processes, providing debugging and development support.
Package peanut implements a process execution and control utility for OCClib-based O² processes, providing debugging and development support.
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