Installation on Windows

GMT can only run on Windows with the Windows Subsystem for Linux (WSL). Before installing GMT make sure you have a working WSL environment.

With WSL you are working with a real Linux distribution (e.g. Ubuntu). Therefore, the most installation steps are equal to the ones documented in Installation on Linux →. On this page we only document the things that are different.

If you ever get stuck during this installation, be sure to reboot WSL once. It may help to correctly load some configurations and/or daemons.

Docker Desktop for Windows

Docker provides a great installation help on their website: https://docs.docker.com/desktop/install/windows-install/

You can just use the Docker Desktop for Windows bundle. Make sure the WSL 2 feature is enabled.

Setup

Before following the setup instructions given in Installation on Linux →, you have to first change your WSL configuration.

Change WSL config

Required changes:

  • Disable automatic generation of hosts file
  • Enable systemd (install script currently enforces the usage of systemd)
sudo vim /etc/wsl.conf

Add the following lines:

[network]
generateHosts = false

[boot]
systemd = true

Restart:

wsl.exe --shutdown

References:

Add hosts entries to Windows

To be able to access the frontend and the API of the GMT, you have to add the URLs to the hosts file on your Windows host system: C:\Windows\System32\drivers\etc\hosts

127.0.0.1 green-coding-postgres-container
127.0.0.1 api.green-coding.internal metrics.green-coding.internal

Enable CGroups v2

This is an optional step, but necessary to be able to get container specific metrics like CPU utilization and memory usage (see section Metric providers below for more information).

Create the file %USERPROFILE%\.wslconfig (or edit it) and add the following content:

[wsl2]
kernelCommandLine = systemd.unified_cgroup_hierarchy=1 cgroup_no_v1=all

Then restart WSL (wsl.exe --shutdown).

You can check which cgroup version is activated via:

mount -l | grep cgroup

Metric providers

With WSL hardware-near metric providers like RAPL are not available. However, for testing your usage scenarios you can use at least the following metric providers:

You have to disable all other providers in your config.yml.