/** * Returns true if at least one of the current disk stats is different from the previous.</br> * The considered disk stats are the following: bytes read, bytes write, IO read, and IO write. */ protected boolean isCurrentVmDiskStatsDifferentFromPrevious(VmDiskStatisticsVO previousVmDiskStats, VmDiskStatisticsVO currentVmDiskStats) { if (previousVmDiskStats != null) { boolean bytesReadDifferentFromPrevious = previousVmDiskStats.getCurrentBytesRead() != currentVmDiskStats.getCurrentBytesRead(); boolean bytesWriteDifferentFromPrevious = previousVmDiskStats.getCurrentBytesWrite() != currentVmDiskStats.getCurrentBytesWrite(); boolean ioReadDifferentFromPrevious = previousVmDiskStats.getCurrentIORead() != currentVmDiskStats.getCurrentIORead(); boolean ioWriteDifferentFromPrevious = previousVmDiskStats.getCurrentIOWrite() != currentVmDiskStats.getCurrentIOWrite(); return bytesReadDifferentFromPrevious || bytesWriteDifferentFromPrevious || ioReadDifferentFromPrevious || ioWriteDifferentFromPrevious; } if (currentVmDiskStats == null) { return false; } return true; }
pstmt.setLong(7, vmDiskStat.getNetBytesRead()); pstmt.setLong(8, vmDiskStat.getNetBytesWrite()); pstmt.setLong(9, vmDiskStat.getCurrentBytesRead()); pstmt.setLong(10, vmDiskStat.getCurrentBytesWrite()); pstmt.setLong(11, vmDiskStat.getAggBytesRead());
pstmt.setLong(12, vmDiskStat.getNetBytesRead()); pstmt.setLong(13, vmDiskStat.getNetBytesWrite()); pstmt.setLong(14, vmDiskStat.getCurrentBytesRead()); pstmt.setLong(15, vmDiskStat.getCurrentBytesWrite()); pstmt.setLong(16, vmDiskStat.getAggBytesRead());
@Override public void doInTransactionWithoutResult(TransactionStatus status) { //get all stats with delta > 0 List<VmDiskStatisticsVO> updatedVmNetStats = _vmDiskStatsDao.listUpdatedStats(); for (VmDiskStatisticsVO stat : updatedVmNetStats) { if (_dailyOrHourly) { //update agg bytes stat.setAggBytesRead(stat.getCurrentBytesRead() + stat.getNetBytesRead()); stat.setAggBytesWrite(stat.getCurrentBytesWrite() + stat.getNetBytesWrite()); stat.setAggIORead(stat.getCurrentIORead() + stat.getNetIORead()); stat.setAggIOWrite(stat.getCurrentIOWrite() + stat.getNetIOWrite()); _vmDiskStatsDao.update(stat.getId(), stat); } } s_logger.debug("Successfully updated aggregate vm disk stats"); } });
&& ((previousVmDiskStats.getCurrentIORead() != vmDiskStat_lock.getCurrentIORead()) || ((previousVmDiskStats.getCurrentIOWrite() != vmDiskStat_lock .getCurrentIOWrite()) || (previousVmDiskStats.getCurrentBytesRead() != vmDiskStat_lock.getCurrentBytesRead()) || (previousVmDiskStats .getCurrentBytesWrite() != vmDiskStat_lock.getCurrentBytesWrite())))) { s_logger.debug("vm disk stats changed from the time GetVmDiskStatsCommand was sent. " + "Ignoring current answer. Host: " + host.getName() if (vmDiskStat_lock.getCurrentBytesRead() > vmDiskStat.getBytesRead()) { if (s_logger.isDebugEnabled()) { s_logger.debug("Read # of Bytes that's less than the last one. " + "Assuming something went wrong and persisting it. Host: " + host.getName() + " . VM: " + vmDiskStat.getVmName() + " Reported: " + vmDiskStat.getBytesRead() + " Stored: " + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setNetBytesRead(vmDiskStat_lock.getNetBytesRead() + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setAggBytesRead(vmDiskStat_lock.getNetBytesRead() + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setAggBytesWrite(vmDiskStat_lock.getNetBytesWrite() + vmDiskStat_lock.getCurrentBytesWrite());
if (vmDiskStat_lock.getCurrentBytesRead() > vmDiskStat.getBytesRead()) { if (s_logger.isDebugEnabled()) { s_logger.debug("Read # of bytes that's less than the last one. " + "Assuming something went wrong and persisting it. Host: " + host.getName() + " . VM: " + vmDiskStat.getVmName() + " Reported: " + vmDiskStat.getBytesRead() + " Stored: " + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setNetBytesRead(vmDiskStat_lock.getNetBytesRead() + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setAggBytesRead(vmDiskStat_lock.getNetBytesRead() + vmDiskStat_lock.getCurrentBytesRead()); vmDiskStat_lock.setAggIOWrite(vmDiskStat_lock.getNetIOWrite() + vmDiskStat_lock.getCurrentIOWrite()); vmDiskStat_lock.setAggIORead(vmDiskStat_lock.getNetIORead() + vmDiskStat_lock.getCurrentIORead());