@Override public int compare(final ConnectionStatus o1, final ConnectionStatus o2) { if (o1 == null && o2 == null) { return 0; } if (o1 == null) { return 1; } if (o2 == null) { return -1; } return -Long.compare(o1.getQueuedBytes(), o2.getQueuedBytes()); } });
public Map<String, Double> getConnectionStatusMetrics(ConnectionStatus status) { final Map<String, Double> metrics = new HashMap<>(); metrics.put(MetricNames.INPUT_COUNT, new Double(status.getInputCount())); metrics.put(MetricNames.INPUT_BYTES, new Double(status.getInputBytes())); metrics.put(MetricNames.QUEUED_COUNT, new Double(status.getQueuedCount())); metrics.put(MetricNames.QUEUED_BYTES, new Double(status.getQueuedBytes())); metrics.put(MetricNames.OUTPUT_COUNT, new Double(status.getOutputCount())); metrics.put(MetricNames.OUTPUT_BYTES, new Double(status.getOutputBytes())); return metrics; }
final String input = connectionStatus.getInputCount() + " / " + FormatUtils.formatDataSize(connectionStatus.getInputBytes()); final String output = connectionStatus.getOutputCount() + " / " + FormatUtils.formatDataSize(connectionStatus.getOutputBytes()); final String queued = connectionStatus.getQueuedCount() + " / " + FormatUtils.formatDataSize(connectionStatus.getQueuedBytes()); inputDiff = toDiff(lastStatus.getInputCount(), lastStatus.getInputBytes(), connectionStatus.getInputCount(), connectionStatus.getInputBytes()); outputDiff = toDiff(lastStatus.getOutputCount(), lastStatus.getOutputBytes(), connectionStatus.getOutputCount(), connectionStatus.getOutputBytes()); queuedDiff = toDiff(lastStatus.getQueuedCount(), lastStatus.getQueuedBytes(), connectionStatus.getQueuedCount(), connectionStatus.getQueuedBytes()); } else { inputDiff = toDiff(0L, 0L, connectionStatus.getInputCount(), connectionStatus.getInputBytes()); outputDiff = toDiff(0L, 0L, connectionStatus.getOutputCount(), connectionStatus.getOutputBytes()); queuedDiff = toDiff(0L, 0L, connectionStatus.getQueuedCount(), connectionStatus.getQueuedBytes());
snapshot.setBytesQueued(connectionStatus.getQueuedBytes()); snapshot.setPercentUseBytes(Math.min(100, StatusMerger.getUtilization(connectionStatus.getQueuedBytes(), connectionStatus.getBackPressureBytesThreshold())));
merged.setQueuedBytes(merged.getQueuedBytes() + statusToMerge.getQueuedBytes()); merged.setInputCount(merged.getInputCount() + statusToMerge.getInputCount()); merged.setInputBytes(merged.getInputBytes() + statusToMerge.getInputBytes());
private void serializeConnectionStatus(final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final ConnectionStatus status, final DateFormat df, final String hostname, final String applicationName, final String platform, final String parentId, final Date currentDate) { final JsonObjectBuilder builder = factory.createObjectBuilder(); final String componentType = "Connection"; final String componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "sourceId", status.getSourceId()); addField(builder, "sourceName", status.getSourceName()); addField(builder, "destinationId", status.getDestinationId()); addField(builder, "destinationName", status.getDestinationName()); addField(builder, "maxQueuedBytes", status.getMaxQueuedBytes()); addField(builder, "maxQueuedCount", status.getMaxQueuedCount()); addField(builder, "queuedBytes", status.getQueuedBytes()); addField(builder, "queuedCount", status.getQueuedCount()); addField(builder, "inputBytes", status.getInputBytes()); addField(builder, "inputCount", status.getInputCount()); addField(builder, "outputBytes", status.getOutputBytes()); addField(builder, "outputCount", status.getOutputCount()); addField(builder, "backPressureBytesThreshold", status.getBackPressureBytesThreshold()); addField(builder, "backPressureObjectThreshold", status.getBackPressureObjectThreshold()); addField(builder, "isBackPressureEnabled", Boolean.toString((status.getBackPressureObjectThreshold() > 0 && status.getBackPressureObjectThreshold() <= status.getQueuedCount()) || (status.getBackPressureBytesThreshold() > 0 && status.getBackPressureBytesThreshold() <= status.getMaxQueuedBytes()))); arrayBuilder.add(builder.build()); } }
static ConnectionStatusBean parseConnectionStatusRequest(ConnectionStatus inputConnectionStatus, String statusTypes, Logger logger) { ConnectionStatusBean connectionStatusBean = new ConnectionStatusBean(); connectionStatusBean.setId(inputConnectionStatus.getId()); connectionStatusBean.setName(inputConnectionStatus.getName()); String[] statusSplits = statusTypes.split(","); for (String statusType : statusSplits) { switch (statusType.toLowerCase().trim()) { case "health": ConnectionHealth connectionHealth = new ConnectionHealth(); connectionHealth.setQueuedBytes(inputConnectionStatus.getQueuedBytes()); connectionHealth.setQueuedCount(inputConnectionStatus.getQueuedCount()); connectionStatusBean.setConnectionHealth(connectionHealth); break; case "stats": ConnectionStats connectionStats = new ConnectionStats(); connectionStats.setInputBytes(inputConnectionStatus.getInputBytes()); connectionStats.setInputCount(inputConnectionStatus.getInputCount()); connectionStats.setOutputCount(inputConnectionStatus.getOutputCount()); connectionStats.setOutputBytes(inputConnectionStatus.getOutputBytes()); connectionStatusBean.setConnectionStats(connectionStats); break; } } return connectionStatusBean; }
private void serializeConnectionStatus(final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final ConnectionStatus status, final DateFormat df, final String hostname, final String applicationName, final String platform, final String parentId, final Date currentDate) { final JsonObjectBuilder builder = factory.createObjectBuilder(); final String componentType = "Connection"; final String componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "sourceId", status.getSourceId()); addField(builder, "sourceName", status.getSourceName()); addField(builder, "destinationId", status.getDestinationId()); addField(builder, "destinationName", status.getDestinationName()); addField(builder, "maxQueuedBytes", status.getMaxQueuedBytes()); addField(builder, "maxQueuedCount", status.getMaxQueuedCount()); addField(builder, "queuedBytes", status.getQueuedBytes()); addField(builder, "queuedCount", status.getQueuedCount()); addField(builder, "inputBytes", status.getInputBytes()); addField(builder, "inputCount", status.getInputCount()); addField(builder, "outputBytes", status.getOutputBytes()); addField(builder, "outputCount", status.getOutputCount()); addField(builder, "backPressureBytesThreshold", status.getBackPressureBytesThreshold()); addField(builder, "backPressureObjectThreshold", status.getBackPressureObjectThreshold()); addField(builder, "isBackPressureEnabled", Boolean.toString((status.getBackPressureObjectThreshold() > 0 && status.getBackPressureObjectThreshold() <= status.getQueuedCount()) || (status.getBackPressureBytesThreshold() > 0 && status.getBackPressureBytesThreshold() <= status.getMaxQueuedBytes()))); arrayBuilder.add(builder.build()); } }