rverchere / vmware_exporter

VMWare VCenter Exporter for Prometheus
BSD 3-Clause "New" or "Revised" License
50 stars 31 forks source link

Performance impact of refreshing each datastore info at every scrape #18

Open wtip opened 7 years ago

wtip commented 7 years ago

I've been running into an issue where one of my esxi hosts appears to be unreachable by the exporter. I think what's actually happening is that the scrape is timing out.

vmware-exporter-scrape

The jump in scrape duration coincides with about the time that I deployed this code change #16 and it looks like I might be bumping up against my default 10 second timeout. I've increased my timeout but I'm not sure if this is a great solution for everyone. Maybe the datastore refresh should be a configurable option.

rverchere commented 7 years ago

Hi,

yes I have the same issue, need to find another way to refresh datastore.

wtip commented 7 years ago

My scrape interval is 60 seconds and after my discovery yesterday I changed the timeout from 10s to 30s. Interestingly the average scrape duration also improved from around 3.5 seconds to 2.5 seconds after the change. My guess is that this has something to do with request blocking. In the graph above the 1 node with a significantly higher scrape duration has 2 iscsi datastores instead of 1 so my guess is that the refresh duration increases with every datastore that is attached.

There's also the RefreshDatastore() method https://github.com/vmware/pyvmomi/blob/master/docs/vim/Datastore.rst maybe this is faster. This is not supported on the free esxi license. I got a 'Current license or ESXi version prohibits execution of the requested operation.',

I'm also wondering if there's a good way to make the refresh not block the rest of the request. I don't really care if the capacity info is refreshed before the request is returned. I just need it to be refreshed on a regular basis.

nivshlomokaltura commented 7 years ago

Hello,

Exporter is getting vcenter (5.5\6.0.2) to refresh datastore information as a vcenter task each query cycle and flood the task viewer.

i would suggest to remove ds.RefreshDatastoreStorageInfo() from vmware_exporter.py

pryorda commented 6 years ago

This issue was moved to pryorda/vmware_exporter#8