Configuration
To get started, the Ponos agent uses a YAML configuration file. Below are the different expected keys and their default value.
farm_id
ID of the Arkindex farm to which the Ponos agent belongs. To retrieve this ID please use the admin interface of the Arkindex instance or contact an administrator.
| A farm can have several Ponos agents. |
seed
Seed of the Arkindex farm to which the Ponos agent belongs. To retrieve this seed please use the admin interface of the Arkindex instance or contact an administrator.
data_dir
Directory that will be used to store various files later to enable Arkindex tasks to be processed. Defaults to /usr/share/ponos/data.
| The Ponos agent must have write access rights to this directory. |
| This key expands environment variables. |
pid_file
Unique file used to store the PID of the Ponos agent currently running. Used to ensure that there is only one Ponos agent running on the host. Defaults to /tmp/ponos.pid.
| This key expands environment variables. |
logging
Logging parameters.
logging.level
Level used to display logs. Can be one of the available levels: NOTSET, DEBUG, INFO (recommended in production), WARNING, ERROR or CRITICAL. Defaults to INFO.
logging.task_format
Logging format used by the agent for the logs surrounding the execution of the task (preparing environment, downloading artifacts, images, models, and so on…), which are published on Arkindex.
This does not affect the logs of the agent itself, nor the logs produced by the tasks.
The possible values are available on Python’s official logging documentation.
Default value is [agent %(levelname)s %(asctime)s] %(message)s.
sentry
Sentry parameters. This is used to track errors from the Ponos agent on a Sentry account.
Example
Below is an example of a YAML configuration file to start a Ponos agent.
url: http://localhost:8000/ # Required
farm_id: farm_ID # Required
seed: seed_ID # Required
data_dir: /tmp # Defaults to `/usr/share/ponos/data`
pid_file: /var/run/ponos.pid # Defaults to `/tmp/ponos.pid`
logging: # Defaults to `{}`
level: DEBUG # Defaults to `INFO`
path: /var/log/ponos.log # Defaults to `None`
sentry:
dsn: https://xxx.sentry.io/yyy # Defaults to `None`
environment: dev # Defaults to `production`
Generic Ponos agent
The configuration described above is as generic as possible. We have currently implemented two agents for that configuration: using Docker engine for standard hardware, and Slurm for super-computers.