I am not sure if it is up to date, but the document posted here has some useful sizing guidelines.
Apart from CPU/RAM/Disk allocations, my recommendation (from personal experience) is to always keep Graylog and Elasticsearch/Opensearch in seperate VMs.