runner.py switches

Apart from the config.yml some additional configuration is possible when manually running with the runner.py.

  • --uri The URI to get the usage_scenario.yml from.
    • If given a URL starting with http(s) the tool will try to clone a remote repository to /tmp/green-metrics-tool/repo
    • If given a local directory starting with /, this will be used instead.
  • --branch When providing a git repository, optionally specify a branch
  • --name A name which will be stored to the database to discern this run from others
  • --filename An optional alternative filename if you do not want to use “usage_scenario.yml”
  • --config-override Override the configuration file with the passed in yml file.
    • Must be located in the same directory as the regular configuration file. Pass in only the name.
  • --no-file-cleanup flag to not delete the metric provider data in /tmp/green-metrics-tool
  • --debug flag to activate steppable debug mode
    • This allows you to enter the containers and debug them if necessary.
  • --allow-unsafe flag to activate unsafe volume bindings, ports, and complex env vars
    • Arbitrary volume bindings into the containers. They are still read-only though
    • Port mappings to the host OS.
    • Non-Strict ENV vars mapped into container
  • --skip-unsafe flag to skip unsafe volume bindings, ports and complex env vars
    • This is typically done when reusing already present compose.yml files without the need to alter the file
  • --skip-system-checks Skip checking the system if the GMT can run
  • --skip-volume-inspect flag to skip disable docker volume inspection. Can help if you encounter permission issues, since GMT runs as non root but for some docker configurations volume dir are only readable by root user.
  • --verbose-provider-boot flag to boot metric providers gradually
    • This will enable the user to see the impact of each metric provider more clearly in the metric timelines
    • There will be a 10 second sleep after each provider boot
    • RAPL metric providers will be prioritized to start first, if enabled
  • --user-id Execute run as a specific user (Default: 1) - See also User Management →
  • --full-docker-prune Stop and remove all containers, build caches, volumes and images on the system
  • --docker-prune Prune all unassociated build caches, networks volumes and stopped containers on the system
  • --dev-no-metrics Skips loading the metric providers. Runs will be faster, but you will have no metric
  • --dev-no-sleeps Removes all sleeps. Resulting measurement data will be skewed.
  • --dev-cache-build Checks if a container image is already in the local cache and will then not build it. Also doesn’t clear the images after a run. Please note that skipping builds only works the second time you make a run since the image has to be built at least initially to work.
  • --dev-flow-timetravel Allows to repeat a failed flow or timetravel to beginning of flows or restart services
  • --dev-no-optimizations Disables the creation of potential optimization recommendations based on the measurement run.
  • --print-logs Prints the container and process logs to stdout

These options are not available when doing cron runs.

Typical calls

Local app

python3 runner.py --uri PATH_TO_MY_SAMPLE_APP_FOLDER --name "MY_NAME"

GitHub repository

python3 runner.py --uri https://github.com/MY_GITHUB_NAME/MY_REPO --name "MY_NAME"