public void addConnection(ConnectionStatus c) { outGoingConnections.computeIfAbsent(c.getSourceId(), k -> new ArrayList<>()).add(c); incomingConnections.computeIfAbsent(c.getDestinationId(), k -> new ArrayList<>()).add(c); }
public Map<String,String> getConnectionStatusTags(ConnectionStatus status) { final Map<String, String> connectionTags = new HashMap<>(); connectionTags.put(MetricNames.CONNECTION_ID, status.getId()); connectionTags.put(MetricNames.CONNECTION_NAME, status.getName()); connectionTags.put(MetricNames.CONNECTION_GROUP_ID, status.getGroupId()); connectionTags.put(MetricNames.CONNECTION_DESTINATION_ID, status.getDestinationId()); connectionTags.put(MetricNames.CONNECTTION_DESTINATION_NAME, status.getDestinationName()); connectionTags.put(MetricNames.CONNECTION_SOURCE_ID, status.getSourceId()); connectionTags.put(MetricNames.CONNECTION_SOURCE_NAME, status.getSourceName()); return connectionTags; }
private List<String> getIncomingProcessorsIds(NiFiFlow nifiFlow, List<ConnectionStatus> incomingConnections) { if (incomingConnections == null) { return Collections.emptyList(); } final List<String> ids = new ArrayList<>(); incomingConnections.forEach(c -> { // Ignore self relationship. final String sourceId = c.getSourceId(); if (!sourceId.equals(c.getDestinationId())) { if (nifiFlow.isProcessor(sourceId)) { ids.add(sourceId); } else { ids.addAll(getIncomingProcessorsIds(nifiFlow, nifiFlow.getIncomingConnections(sourceId))); } } }); return ids; }
private List<String> getNextProcessComponent(NiFiFlow nifiFlow, NiFiFlowPath path, String componentId) { final List<ConnectionStatus> outs = nifiFlow.getOutgoingConnections(componentId); if (outs == null || outs.isEmpty()) { return Collections.emptyList(); } final List<String> nextProcessComponent = new ArrayList<>(); for (ConnectionStatus out : outs) { final String destinationId = out.getDestinationId(); if (path.getProcessComponentIds().contains(destinationId)) { // If the connection is pointing back to current path, then skip it to avoid loop. continue; } if (nifiFlow.isProcessComponent(destinationId)) { nextProcessComponent.add(destinationId); } else { nextProcessComponent.addAll(getNextProcessComponent(nifiFlow, path, destinationId)); } } return nextProcessComponent; }
componentNameMap.computeIfAbsent(connectionStatus.getDestinationId(), k -> connectionStatus.getDestinationName()); sourceToConnectionParentGroupMap.put(connectionStatus.getSourceId(), connectionStatus.getGroupId()); destinationToConnectionParentGroupMap.put(connectionStatus.getDestinationId(), connectionStatus.getGroupId());
final String destinationId = connection.getDestinationId(); final NiFiFlowPath destFlowPath = nifiFlow.findPath(destinationId); if (destFlowPath == null) {
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()); } }
connectionStatusDto.setSourceId(connectionStatus.getSourceId()); connectionStatusDto.setSourceName(connectionStatus.getSourceName()); connectionStatusDto.setDestinationId(connectionStatus.getDestinationId()); connectionStatusDto.setDestinationName(connectionStatus.getDestinationName()); connectionStatusDto.setStatsLastRefreshed(new Date());
public void addConnection(ConnectionStatus c) { outGoingConnections.computeIfAbsent(c.getSourceId(), k -> new ArrayList<>()).add(c); incomingConnections.computeIfAbsent(c.getDestinationId(), k -> new ArrayList<>()).add(c); }
private List<String> getNextProcessComponent(NiFiFlow nifiFlow, NiFiFlowPath path, String componentId) { final List<ConnectionStatus> outs = nifiFlow.getOutgoingConnections(componentId); if (outs == null || outs.isEmpty()) { return Collections.emptyList(); } final List<String> nextProcessComponent = new ArrayList<>(); for (ConnectionStatus out : outs) { final String destinationId = out.getDestinationId(); if (path.getProcessComponentIds().contains(destinationId)) { // If the connection is pointing back to current path, then skip it to avoid loop. continue; } if (nifiFlow.isProcessComponent(destinationId)) { nextProcessComponent.add(destinationId); } else { nextProcessComponent.addAll(getNextProcessComponent(nifiFlow, path, destinationId)); } } return nextProcessComponent; }
private List<String> getIncomingProcessorsIds(NiFiFlow nifiFlow, List<ConnectionStatus> incomingConnections) { if (incomingConnections == null) { return Collections.emptyList(); } final List<String> ids = new ArrayList<>(); incomingConnections.forEach(c -> { // Ignore self relationship. final String sourceId = c.getSourceId(); if (!sourceId.equals(c.getDestinationId())) { if (nifiFlow.isProcessor(sourceId)) { ids.add(sourceId); } else { ids.addAll(getIncomingProcessorsIds(nifiFlow, nifiFlow.getIncomingConnections(sourceId))); } } }); return ids; }
final String destinationId = connection.getDestinationId(); final NiFiFlowPath destFlowPath = nifiFlow.findPath(destinationId); if (destFlowPath == null) {
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()); } }