Hello Zigo!, You might want to take a look at the new implementations we made in ceilometer, and CloudKitty. - https://review.opendev.org/c/openstack/cloudkitty/+/861806 - https://review.opendev.org/c/openstack/ceilometer/+/856178 - https://review.opendev.org/c/openstack/ceilometer/+/852021 - https://review.opendev.org/c/openstack/ceilometer/+/850253 - https://review.opendev.org/c/openstack/ceilometer/+/855953 Not directly relate to this use case, but also might interest you: - https://review.opendev.org/c/openstack/cloudkitty/+/861786 - https://review.opendev.org/c/openstack/cloudkitty/+/861807 - https://review.opendev.org/c/openstack/cloudkitty/+/861908 - https://review.opendev.org/c/openstack/ceilometer/+/856972 - https://review.opendev.org/c/openstack/ceilometer/+/861109 - https://review.opendev.org/c/openstack/ceilometer/+/856304 - https://review.opendev.org/c/openstack/ceilometer/+/856305 In short, we can now create Ceilometer compute dynamic pollsters, which can execute scripts in the host, and check the actual operating system installed in the VM. Then, this data can be pushed back to the storage backend via Ceilometer as an attribute, which is then processed in CloudKitty. Furthermore, we extended cloudkitty to generate different ratings for the same metric. Therefore, by doing this, we do not need multiple metrics to have different CloudKitty ratings appearing for users. This allows us, for instance, to have one rating for the VM usage itself, and others for each license, and so on. On Fri, Oct 21, 2022 at 5:19 AM Thomas Goirand <zigo@debian.org> wrote:
Hi there!
We're using telemetry+cloudkitty for our rating. We're happy of it, though we're having the issue that we would like to bill instances running Windows.
The example given in the Cloudkitty doc shows how to bill more when an instance runs Windows. That works in theory, though in practice, Microsoft has a license model based on how many vCPU the instannce runs. So the model that the Cloudkitty documentation shows simply doesn't work with the SPLA thingy.
We've looked at options. One way would of course writing a new custom pollster, but we don't like the idea: this would mean polling for all of the thousands of instances that are running in our deployments. So we would very much prefer having ceilometer running on compute node (with polling_namespaces=compute) to do the work, as this scales a way better.
However, Ceilometer polls libvirt, which only has the information about the image ID, not the metadata associated with the image (like the property os_type=windows, for example).
So, is there a better way than a dynamic pollster? Can this be done with ceilometer on the compute nodes?
Cheers,
Thomas Goirand (zigo)
-- Rafael Weingärtner