} else { final DiskUsageStatistic lastObservedDiskUsageStatistic = this.diskUsageStatisticMap.get(deviceName); final long timeDifference = currentDiskUsageStatistic.getTimestamp() - lastObservedDiskUsageStatistic.getTimestamp(); if (timeDifference <= 0) { throw new IllegalStateException("Timestamp of new observation should be strictly larger than the previous one."); final double currentQueue = currentDiskUsageStatistic.getQueue(); final long readBytesDifference = currentDiskUsageStatistic.getReadBytes() - lastObservedDiskUsageStatistic.getReadBytes(); final long readsDifference = currentDiskUsageStatistic.getReads() - lastObservedDiskUsageStatistic.getReads(); final double currentServiceTime = currentDiskUsageStatistic.getServiceTime(); final long writeBytesDifference = currentDiskUsageStatistic.getWriteBytes() - lastObservedDiskUsageStatistic.getWriteBytes(); final long writesDifference = currentDiskUsageStatistic.getWrites() - lastObservedDiskUsageStatistic.getWrites(); final double writesPerSecond = writesDifference / (double) TimeUnit.SECONDS.convert(timeDifference, timeUnit); final DiskUsageRecord diskUsageRecord = new DiskUsageRecord(currentDiskUsageStatistic.getTimestamp(), monitoringController.getHostname(), deviceName, currentQueue, readBytesPerSecond, readsPerSecond, currentServiceTime, writeBytesPerSecond, writesPerSecond); monitoringController.newMonitoringRecord(diskUsageRecord);
} else { final DiskUsageStatistic lastObservedDiskUsageStatistic = this.diskUsageStatisticMap.get(deviceName); final long timeDifference = currentDiskUsageStatistic.getTimestamp() - lastObservedDiskUsageStatistic.getTimestamp(); if (timeDifference <= 0) { throw new IllegalStateException("Timestamp of new observation should be strictly larger than the previous one."); final double currentQueue = currentDiskUsageStatistic.getQueue(); final long readBytesDifference = currentDiskUsageStatistic.getReadBytes() - lastObservedDiskUsageStatistic.getReadBytes(); final long readsDifference = currentDiskUsageStatistic.getReads() - lastObservedDiskUsageStatistic.getReads(); final double currentServiceTime = currentDiskUsageStatistic.getServiceTime(); final long writeBytesDifference = currentDiskUsageStatistic.getWriteBytes() - lastObservedDiskUsageStatistic.getWriteBytes(); final long writesDifference = currentDiskUsageStatistic.getWrites() - lastObservedDiskUsageStatistic.getWrites(); final double writesPerSecond = writesDifference / (double) TimeUnit.SECONDS.convert(timeDifference, timeUnit); final DiskUsageRecord diskUsageRecord = new DiskUsageRecord(currentDiskUsageStatistic.getTimestamp(), monitoringController.getHostname(), deviceName, currentQueue, readBytesPerSecond, readsPerSecond, currentServiceTime, writeBytesPerSecond, writesPerSecond); monitoringController.newMonitoringRecord(diskUsageRecord);
private DiskUsageStatistic getCurrentDiskUsageStatistic(final ITimeSource timesource, final String deviceName) throws SigarException { final DiskUsage diskUsage = this.sigar.getDiskUsage(deviceName); final long currentTimestamp = timesource.getTime(); final double queue = diskUsage.getQueue(); final long readBytes = diskUsage.getReadBytes(); final long reads = diskUsage.getReads(); final double serviceTime = diskUsage.getServiceTime(); final long writeBytes = diskUsage.getWriteBytes(); final long writes = diskUsage.getWrites(); return new DiskUsageStatistic(currentTimestamp, queue, readBytes, reads, serviceTime, writeBytes, writes); }
private DiskUsageStatistic getCurrentDiskUsageStatistic(final ITimeSource timesource, final String deviceName) throws SigarException { final DiskUsage diskUsage = this.sigar.getDiskUsage(deviceName); final long currentTimestamp = timesource.getTime(); final double queue = diskUsage.getQueue(); final long readBytes = diskUsage.getReadBytes(); final long reads = diskUsage.getReads(); final double serviceTime = diskUsage.getServiceTime(); final long writeBytes = diskUsage.getWriteBytes(); final long writes = diskUsage.getWrites(); return new DiskUsageStatistic(currentTimestamp, queue, readBytes, reads, serviceTime, writeBytes, writes); }