From 7a1638ea497d6e7681f0b6b4b6e58b14575f7c60 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 15 Jan 2021 07:51:59 +0000 Subject: [PATCH 1/2] server: Get vm network/disk statistics and update database per host --- .../java/com/cloud/server/StatsCollector.java | 55 +++++++++---------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/server/src/main/java/com/cloud/server/StatsCollector.java b/server/src/main/java/com/cloud/server/StatsCollector.java index f8ca6576108a..96885052d682 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 @@ protected void runInContext() { 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 void doInTransactionWithoutResult(TransactionStatus status) { 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 void doInTransactionWithoutResult(TransactionStatus status) { } } } - } - }); - } catch (Exception e) { - s_logger.warn("Error while collecting vm disk stats from hosts", e); + }); + } catch (Exception e) { + s_logger.warn("Error while collecting vm disk stats from hosts", e); + } } } } @@ -812,16 +811,16 @@ protected void runInContext() { 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 void doInTransactionWithoutResult(TransactionStatus status) { 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 void doInTransactionWithoutResult(TransactionStatus status) { } } } - } - }); - } catch (Exception e) { - s_logger.warn("Error while collecting vm network stats from hosts", e); + }); + } catch (Exception e) { + s_logger.warn("Error while collecting vm network stats from hosts", e); + } } } } From c7839e1be91cfb0d8a3c99745a20f0152664dd81 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Mon, 25 Jan 2021 14:37:23 +0000 Subject: [PATCH 2/2] #4601 : modify debug message --- server/src/main/java/com/cloud/server/StatsCollector.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/cloud/server/StatsCollector.java b/server/src/main/java/com/cloud/server/StatsCollector.java index 96885052d682..86f02c28ea23 100644 --- a/server/src/main/java/com/cloud/server/StatsCollector.java +++ b/server/src/main/java/com/cloud/server/StatsCollector.java @@ -794,7 +794,7 @@ public void doInTransactionWithoutResult(TransactionStatus status) { } }); } catch (Exception e) { - s_logger.warn("Error while collecting vm disk stats from hosts", e); + s_logger.warn(String.format("Error while collecting vm disk stats from host %s : ", host.getName()), e); } } } @@ -913,7 +913,7 @@ public void doInTransactionWithoutResult(TransactionStatus status) { } }); } catch (Exception e) { - s_logger.warn("Error while collecting vm network stats from hosts", e); + s_logger.warn(String.format("Error while collecting vm network stats from host %s : ", host.getName()), e); } } }