Enabling memory usage metrics for Windows instances

When using the Windows images provided by our partners, or your own Windows images, certain metrics for your instance such as memory usage will not be published to the Catalyst Cloud Metrics Service. This functionality requires device drivers to be installed into your instance.

This tutorial shows how you can install the necessary components to start publishing memory usage metrics to the Metrics Service, allowing you to monitor memory usage for your Windows instances.

Installing the drivers

Catalyst Cloud uses the Windows Guest Drivers for KVM, implemented using the VirtIO interface, to provide better hardware support for running Windows.

Some of these drivers are pre-installed in our publicly available Windows images, but additional drivers are required to allow memory usage to be collected and published to the Metrics Service.

Note

The drivers and accompanying user-space services installed in this tutorial do not “phone home” from within the instance itself.

The VirtIO drivers provide a hardware interface at the hypervisor level which allows our telemetry services to securely and anonymously collect metrics for your instance without any risk to your personal data. No other information (such as details of any running applications) is exposed or collected.

The latest VirtIO drivers for Windows can be downloaded and installed from the following link:

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win-gt-x64.msi

To install this driver, simply double click virtio-win-gt-x64.msi and follow the on-screen instructions.

Warning

The VirtIO drivers are digitally signed to ensure integrity of the drivers.

If Windows is unable to verify the authenticity of the downloaded file, do not install it on your system and delete it immediately. If you have any issues installing these drivers, please get in touch via the Support Centre.

Getting memory usage metrics

Once the VirtIO drivers are installed on your instance, our telemetry services will immediately start collecting and publishing memory usage metrics for compute instances to the Metrics Service.

Note

Because memory usage is collected using polling, there is a delay of up to 10-20 minutes before the first measures are published.

Memory usage measures are available from the memory.usage metric. To query the amount of memory currently being used by your instance (in MiB), you can run the following CLI commands to get the memory usage of your instance within the current hour (after setting up your environment as documented in Metrics Prerequisites):

resource_id=$(openstack server show "<name of instance>" -c id -f value)
openstack metric measures show --resource-id ${resource_id} \
                               memory.usage
                               --aggregation max \
                               --granularity 600 \
                               --start $(date '+%Y-%m-%dT%H:00:00') \
                               --utc

Example output:

$ resource_id=$(openstack server show test-instance -c id -f value)
$ openstack metric measures show --resource-id ${resource_id} memory.usage --aggregation max --granularity 600 --start $(date '+%Y-%m-%dT%H:00:00') --utc
+---------------------------+-------------+-------+
| timestamp                 | granularity | value |
+---------------------------+-------------+-------+
| 2025-08-25T03:00:00+00:00 |       600.0 | 786.0 |
| 2025-08-25T03:10:00+00:00 |       600.0 | 786.0 |
| 2025-08-25T03:20:00+00:00 |       600.0 | 786.0 |
| 2025-08-25T03:30:00+00:00 |       600.0 | 786.0 |
+---------------------------+-------------+-------+

For more information on how to use the Metrics Service, see Getting Started. To find out the other resource types and metrics available in the Metrics Service, see the Resource/Metric Reference.