The config.yml configures some global measurement settings that are used when executing the directly or through cron mode.

Here is an example configuration:

  host: green-coding-postgres-container
  user: postgres
  dbname: green-coding
  port: 9573

  host: green-coding-redis-container

  server: SMTP_SERVER
  sender: SMTP_SENDER
  port: SMTP_PORT
  password: SMTP_AUTH_PW

  api_url: __API_URL__
  metrics_url: __METRICS_URL__
    sleep_time_no_job: 300
    jobs_processing: "random"
    time_between_control_workload_validations: 21600
    send_control_workload_status_mail: False
    shutdown_on_job_no: False
      name: "Measurement control Workload"
      uri: ""
      filename: "usage_scenario.yml"
      branch: "main"
      comparison_window: 5
      threshold: 0.01
      phase: "004_[RUNTIME]"
        - "psu_energy_ac_mcp_machine"
        - "psu_power_ac_mcp_machine"
        - "cpu_power_rapl_msr_component"
        - "cpu_energy_rapl_msr_component"

  id: 1
  description: "Development machine for testing"
  base_temperature_value: False
  base_temperature_chip: False
  base_temperature_feature: False

  system_check_threshold: 3 # Can be 1=INFO, 2=WARN or 3=ERROR
  pre-test-sleep: 5
  idle-duration: 5
  baseline-duration: 5
  flow-process-duration: 1800 # half hour
  total-duration: 3600 # one hour
  post-test-sleep: 5
  phase-transition-time: 1
    wait_time_dependencies: 60
        resolution: 100
        resolution: 100
        resolution: 100
        resolution: 100
    # ...

  notification_email: False
  notification_email_bcc: False
  error_file: False
  error_email: False

The postgresql, smtp and cluster key were already discussed in the installation → part.


Please see installation →


  • api_url [str]: URL including schema where the API is locates
  • metrics_url [str]: URL including schema where the API is locates

For the rest please see installation →


  • system_check_threshold **[integer]: Level at which an exception will be raised for system checks. The lower the more restrictive system checks are. We recommend 3 for development and 2 for cluster setups. 1 only for debugging.
  • pre-test-sleep [integer]: Seconds to idle containers after orchestrating but before start of measurement
  • post-test-sleep [integer]: Seconds to idle containers after measurement
  • flow-process-duration [integer]: Max. duration in seconds for how long one flow should take. Timeout-Exception is thrown if exceeded.
  • total-duration [integer]: Max. duration in seconds for how long the whole benchmark may take. Including building containers, baseline, idle, runtime and removal phases.
  • idle-duration [integer]: Duration in seconds for the idle phase
  • baseline-duration [integer]: Duration in seconds for the baseline phase
  • phase-transition-time [integer]: Seconds to idle between phases
  • boot:
    • wait_time_dependencies: [integer]: Max. duration in seconds to wait for dependencies (defined with depends_on) to be ready. If duration is reached and a dependency is not ready, the measurement will fail.
  • metric-providers:
    • linux/macos/common [string]: Specifies under what system the metric provider can run. Common implies it could run on either.
      • METRIC_PROVIDER_NAME [string]: Key specifies the Metric Provider. Possible Metric Providers →
      • METRIC_PROVIDER_NAME.resolution [integer]: sampling resolution in ms

Some metric providers have unique configuration params:

Also note that some providers are deactivated by default, because they either need additional configuration parameters, extra hardware or a specially configured system.

Once you have set them up you can uncomment the line. In this example for instance the line and all the lines directly below it.


The admin key provides no configuration for essential configurations like for instance error handling and email behaviour if configured

  • notification_email [str|bool]: This address will get an email, for any error or new project added etc.
  • notification_email_bcc [str|bool]: This email will always get a copy of every notification email sent, even for user-only mails like the “Your report is ready” mail.
  • error_file [str|bool]: Takes a file path to log all the errors to it. This is disabled if False
  • error_email [str|bool]: Sends an error notification also via email. This is disabled if False