diff --git a/server/src/main/java/com/cloud/server/StatsCollector.java b/server/src/main/java/com/cloud/server/StatsCollector.java index f8ca6576108..86f02c28ea2 100644 --- a/server/src/main/java/com/cloud/server/StatsCollector.java +++ b/server/src/main/java/com/cloud/server/StatsCollector.java @@ -684,18 +684,17 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc return; } // collect the vm disk statistics(total) from hypervisor. added by weizhou, 2013.03. - s_logger.trace("Running VM disk stats ..."); - try { - Transaction.execute(new TransactionCallbackNoReturn() { - @Override - public void doInTransactionWithoutResult(TransactionStatus status) { - s_logger.debug("VmDiskStatsTask is running..."); + s_logger.debug("VmDiskStatsTask is running..."); - SearchCriteria sc = createSearchCriteriaForHostTypeRoutingStateUpAndNotInMaintenance(); - sc.addAnd("hypervisorType", SearchCriteria.Op.IN, HypervisorType.KVM, HypervisorType.VMware); - List hosts = _hostDao.search(sc, null); + SearchCriteria sc = createSearchCriteriaForHostTypeRoutingStateUpAndNotInMaintenance(); + sc.addAnd("hypervisorType", SearchCriteria.Op.IN, HypervisorType.KVM, HypervisorType.VMware); + List hosts = _hostDao.search(sc, null); - for (HostVO host : hosts) { + for (HostVO host : hosts) { + try { + Transaction.execute(new TransactionCallbackNoReturn() { + @Override + public void doInTransactionWithoutResult(TransactionStatus status) { List vms = _userVmDao.listRunningByHostId(host.getId()); List vmIds = new ArrayList(); @@ -706,7 +705,7 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc HashMap> vmDiskStatsById = _userVmMgr.getVmDiskStatistics(host.getId(), host.getName(), vmIds); if (vmDiskStatsById == null) - continue; + return; Set vmIdSet = vmDiskStatsById.keySet(); for (Long vmId : vmIdSet) { @@ -793,10 +792,10 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc } } } - } - }); - } catch (Exception e) { - s_logger.warn("Error while collecting vm disk stats from hosts", e); + }); + } catch (Exception e) { + s_logger.warn(String.format("Error while collecting vm disk stats from host %s : ", host.getName()), e); + } } } } @@ -812,16 +811,16 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc return; } // collect the vm network statistics(total) from hypervisor - try { - Transaction.execute(new TransactionCallbackNoReturn() { - @Override - public void doInTransactionWithoutResult(TransactionStatus status) { - s_logger.debug("VmNetworkStatsTask is running..."); + s_logger.debug("VmNetworkStatsTask is running..."); - SearchCriteria sc = createSearchCriteriaForHostTypeRoutingStateUpAndNotInMaintenance(); - List hosts = _hostDao.search(sc, null); + SearchCriteria sc = createSearchCriteriaForHostTypeRoutingStateUpAndNotInMaintenance(); + List hosts = _hostDao.search(sc, null); - for (HostVO host : hosts) { + for (HostVO host : hosts) { + try { + Transaction.execute(new TransactionCallbackNoReturn() { + @Override + public void doInTransactionWithoutResult(TransactionStatus status) { List vms = _userVmDao.listRunningByHostId(host.getId()); List vmIds = new ArrayList(); @@ -832,7 +831,7 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc HashMap> vmNetworkStatsById = _userVmMgr.getVmNetworkStatistics(host.getId(), host.getName(), vmIds); if (vmNetworkStatsById == null) - continue; + return; Set vmIdSet = vmNetworkStatsById.keySet(); for (Long vmId : vmIdSet) { @@ -912,10 +911,10 @@ public class StatsCollector extends ManagerBase implements ComponentMethodInterc } } } - } - }); - } catch (Exception e) { - s_logger.warn("Error while collecting vm network stats from hosts", e); + }); + } catch (Exception e) { + s_logger.warn(String.format("Error while collecting vm network stats from host %s : ", host.getName()), e); + } } } }