How can turbonomic accurately track OS memory usage, to make sizing recommendations, when vCenter can't?

We ran into an issue today where a VMs memory usage was under 40% in turbonomic and vCenter, but oom killer was killing processes because of lack of memory. We had no recommendation to increase the VMs memory from turbonomic and or VM memory usage alarms from vCenter, but the VM was clearly struggling as you can see from the screenshots below.

vCenter performance monitoring shows low memory usage.

Turbonomic shows similar low memory usage.

Zabbix shows OS memory usage consistently over 80%.

The free command shows high memory usage and swapping is occurring which means there is insufficient memory for the OS.

Since vCenter active memory is an estimation, not actual usage, and was not intended to be used as a rightsizing counter how does turbonomics overcome this to accurately display memory usage and resource contention?

We collect data from vCenter, which as you correctly pointed out differs from the stats available from Zabbix or other operating system monitoring tools.

Which metrics should be used when calculating sizing decisions is up for debate (I think this is a great blog post examining the two options: VM Memory Usage Stats: vCenter vs. Windows | vNoob) and we enable Turbonomic users to use whichever metrics they prefer.

We collect data from vCenter, which as you correctly pointed out differs from the stats available from Zabbix or other operating system monitoring tools.

Which metrics should be used when calculating sizing decisions is up for debate (I think this is a great blog post examining the two options: VM Memory Usage Stats: vCenter vs. Windows | vNoob) and we enable Turbonomic users to use whichever metrics they prefer.