Getting a ton of errors in my logs since upgrading HA 0.109.x. I believe they’ve changed something fundamental that is now spamming my log with errors.
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/__init__.py, line 259: vm_name = vm.summary.config.name.replace(" ", "_").lower()
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 173: vm_conf = vm.configStatus
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 174: vm_sum = vm.summary
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 175: vm_run = vm.runtime
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 176: vm_snap = vm.snapshot
2020-05-18 23:17:47 WARNING (MainThread) [homeassistant.util.async_] Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/__init__.py, line 259: vm_name = vm.summary.config.name.replace(" ", "_").lower()
I’m getting this error since I updated to version 0.110.2
## Log Details (WARNING)
Logger: homeassistant.util.async_
Source: util/async_.py:120
First occurred: 12:04:27 AM (57 occurrences)
Last logged: 12:04:27 AM
* Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 173: vm_conf = vm.configStatus
* Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 174: vm_sum = vm.summary
* Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 175: vm_run = vm.runtime
* Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 176: vm_snap = vm.snapshot
* Detected I/O inside the event loop. This is causing stability issues. Please report issue to the custom component author for esxi_stats doing I/O at custom_components/esxi_stats/esxi.py, line 31: current_session = conn.content.sessionManager.currentSession.key
edit - solved. The problem below was due to my rookie yaml mistakes. Once I cleaned up the syntax, all worked fine. Using a real editor was a huge help in finding indentation errors.
I’ve installed ESXi Stats and its working great. Trying to set up the horseshoe card based on the examples found at https://github.com/wxt9861/esxi_stats/tree/master/examples has been a challenge. No matter what changes I make, the result is a blank screen. The flex-horseshoe-card and de-cluttering card have been installed via HACS and the corresponding .js files are in the www/community folder. I’ve tried referencing the url path under resources with a path of “url: /community_plugin/” as well as “url: /hacsfiles” both without success.
I know it is probably something simple or I’m missing a basic concept but at this point, I am out of ideas. I’d appreciate any suggestions anyone might have. If this post should be put somewhere else, please let me know.
I feel like I am missing something very stupid simple. I have the integration going, but I am only getting 2 Datastores, 1 License, 4 VMs, and 1 Ethernet as entities. What I want to get are those 8 entities, but I also want CPU, RAM, etc entities for each of the VMs individually. Is this possible? What am I missing?
@wxt9861
Anyone running into issues pulling the “memory used mb” field? Mine is showing at about 99% used, but looking at ESXi directly, it should be reading at something like 8% used.
Active guest memory is what the hypervisor estimates the VM is using.
Consumed host memory is how much ram the hypervisor has allocated to the VM, including any overhead - this is the stat we’re pulling. If you add up all the consumed host memory you should get the total which is close to the total used memory for the VMHost.
Yeah I get that. It seems that Memory Allocated MB in your component should be pulling from the Consumed Host Memory in ESXi, and Memory Used MB should be pulling form the Active Guest Memory, right? It the examples above, those number are way off though
The metrics are correct, maybe the wording needs to be changed.
Memory Allocated MB is how much RAM you allocated to the VM in the VM configuration. In the screenshot you provided, it is 16384 or 16GB. I can change it to Memory Configured
Memory Usage is how much RAM the host has allocated to the VM (including overhead). In the screenshot you provided it is 16479 or 16.09GB. I can change it to Memory Allocated.
So basically looking at Allocated and Consumed does not make sense, since this is basically what is preconfigured at VM setup and what OS tries to allocate to machine, without looking at actual usage… What we really need is Active Guest memory, that shows if allocated memory was right for the machine (close to 100%) or overestimated (way below 100%) and how is it changing over time. Otherwise we are getting 2 very similar and mostly static numebrs, that tell nothing about potential VM performace problems. But I do not think it is available?
I don’t agree with this - the host will allocate memory when it is needed. If you configure VM with 32GB but only ever need 4, the host is not going to allocate all 32GB just because.
It sounds like you want to know what is going on with the VM on the OS level. There are better tools to monitor those conditions (netdata, glances, etd). The purpose of this component is to see what is happening on the host level.
Fully agree, I want to know what is going on VM level! And I’d prefer to have this in one place, in commonly accessed set of sensors from one integration rather, than have several different other components, perhaps one per VM to gather data from. Issue is here, that in some cases I even do not know what is underlying OS for some of appliances that I’m using, nor if it is possible to monitor OS level data for these. For some appliances, even if underlying OS is known and supports some monitoring component installation, actual implementaion might be striped down to minimum, prohibiting installation of for example VMware tools.
Said that, if these sensors that ESXi integration exposes to you are fitting your needs - perfect. But this is not what I’d expect/desire. If I allocate 4GB to my HA VM and I see that all 4GB are used, I might think that more is needed. But then when I look at HA memory use via sysmonitor I see that only 23% of allocated RAM is used. So what is the sense of ESXi Memory Consumed sensor? Indeed only if you look at this from host perspective.
Luckily for HA there are sensors available, so I can check. For other VMs not.
Ah, and one more thing why my approach is different; my server has 32GB of RAM and all of my allways-on VMs are configured to use 24GB all togethe. So it leaves also plenty of capacity for host itself. Thats why current setup is not so much interesting for me, as host is able to allocate all of configured amount of RAM to respective VMs. For sure this would be different situation if I’d have overprovisioned RAM and host would need to dynamically manage RAM depending on VM load. Then such sensors would be of great use!
Not to upstage the ESXi Stats Component, because I do still use it to monitor the Datastores and whatnot, but if you want a closer look into the VMs themselves, take a look at OpenHardwareMonitor. Basically you set it up on the VM, and enable the web console for OHM Then there is a Component for HA to read the web console for each of your machines. I use both side by side: ESXi Stats for the top level view, and OHM for a close up of each VM.