@Override protected void runInContext() { try { s_logger.debug("HostStatsCollector is running..."); SearchCriteria<HostVO> sc = createSearchCriteriaForHostTypeRoutingStateUpAndNotInMaintenance(); Map<Object, Object> metrics = new HashMap<>(); List<HostVO> hosts = _hostDao.search(sc, null); for (HostVO host : hosts) { HostStatsEntry hostStatsEntry = (HostStatsEntry)_resourceMgr.getHostStatistics(host.getId()); if (hostStatsEntry != null) { hostStatsEntry.setHostVo(host); metrics.put(hostStatsEntry.getHostId(), hostStatsEntry); _hostStats.put(host.getId(), hostStatsEntry); } else { s_logger.warn("The Host stats is null for host: " + host.getId()); } } if (externalStatsType == ExternalStatsProtocol.INFLUXDB) { sendMetricsToInfluxdb(metrics); } updateGpuEnabledHostsDetails(hosts); } catch (Throwable t) { s_logger.error("Error trying to retrieve host stats", t); } }