private static List<PortStatistics> sortByPort(Iterable<PortStatistics> portStats) { List<PortStatistics> portStatsList = Lists.newArrayList(portStats); portStatsList.sort(Comparator.comparing(ps -> ps.portNumber().toLong())); return portStatsList; } }
private boolean isIrrelevant(PortStatistics stat) { // TODO revisit logical port (e.g., ALL) handling return portNumber != null && !portNumber.equals(stat.portNumber()); }
private String getPortStatStr(PortStatistics stat, Port port) { final String portName = port.annotations().value(AnnotationKeys.PORT_NAME); return String.format("port: %s(%s), ", stat.portNumber(), portName) + String.format("enabled: %b, ", port.isEnabled()) + String.format("pktRx: %d, ", stat.packetsReceived()) + String.format("pktTx: %d, ", stat.packetsSent()) + String.format("pktRxErr: %d, ", stat.packetsRxErrors()) + String.format("pktTxErr: %d, ", stat.packetsTxErrors()) + String.format("pktRxDrp: %d, ", stat.packetsRxDropped()) + String.format("pktTxDrp: %d", stat.packetsTxDropped()); }
private void dumpCpStatistics(ConnectPoint cp, Collection<PortStatistics> devPortStats, Collection<PortStatistics> devPortDeltaStats, String direction, ServiceRefs svcs) { if (cp == null) { return; } dump(" %s:", direction); if (cp.port().isLogical()) { dump(" - logical: device: %s, port: %s", cp.deviceId(), cp.port()); return; } Port port = svcs.deviceService.getPort(cp.deviceId(), cp.port()); if (port == null) { return; } try { devPortStats.stream() .filter(stat -> stat.portNumber().equals(cp.port())) .forEach(stat -> dump(" - stat : %s:", getPortStatStr(stat, port))); } catch (IllegalStateException e) { error("error: " + e); return; } try { devPortDeltaStats.stream() .filter(stat -> stat.portNumber().equals(cp.port())) .forEach(stat -> dump(" - delta : %s:", getPortStatStr(stat, port))); } catch (IllegalStateException e) { error("error: " + e); } }
float rateRx = stat.bytesReceived() * 8 / duration; float rateTx = stat.bytesSent() * 8 / duration; print(formatDelta, stat.portNumber(), stat.packetsReceived(), stat.packetsSent(),
/** * Prints Port Statistics. * * @param deviceId * @param portStats */ private void printPortStats(DeviceId deviceId, Iterable<PortStatistics> portStats) { print("deviceId=%s", deviceId); for (PortStatistics stat : sortByPort(portStats)) { if (isIrrelevant(stat)) { continue; } if (nonzero && stat.isZero()) { continue; } print(FORMAT, stat.portNumber(), stat.packetsReceived(), stat.packetsSent(), stat.bytesReceived(), stat.bytesSent(), stat.packetsRxDropped(), stat.packetsTxDropped(), stat.durationSec(), annotations(stat.annotations())); } }
float rateRx = duration > 0 ? stat.bytesReceived() * 8 / duration : 0; float rateTx = duration > 0 ? stat.bytesSent() * 8 / duration : 0; print(formatDeltaTable, stat.portNumber(), humanReadable(stat.packetsReceived()), humanReadable(stat.bytesReceived()),