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 boolean isHeadProcessor(NiFiFlow nifiFlow, List<ConnectionStatus> ins) { if (ins == null || ins.isEmpty()) { return true; } return ins.stream().allMatch( in -> { // If it has incoming relationship from other process components, then return false. final String sourceId = in.getSourceId(); if (nifiFlow.isProcessComponent(sourceId)) { return false; } // Check next level. final List<ConnectionStatus> incomingConnections = nifiFlow.getIncomingConnections(sourceId); return isHeadProcessor(nifiFlow, incomingConnections); } ); }
componentToParentGroupMap.put(connectionStatus.getId(), thisProcessGroupNode); componentNameMap.computeIfAbsent(connectionStatus.getSourceId(), k -> connectionStatus.getSourceName()); componentNameMap.computeIfAbsent(connectionStatus.getDestinationId(), k -> connectionStatus.getDestinationName()); sourceToConnectionParentGroupMap.put(connectionStatus.getSourceId(), connectionStatus.getGroupId()); destinationToConnectionParentGroupMap.put(connectionStatus.getDestinationId(), connectionStatus.getGroupId());
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.setId(connectionStatus.getId()); connectionStatusDto.setName(connectionStatus.getName()); connectionStatusDto.setSourceId(connectionStatus.getSourceId()); connectionStatusDto.setSourceName(connectionStatus.getSourceName()); connectionStatusDto.setDestinationId(connectionStatus.getDestinationId());
public void addConnection(ConnectionStatus c) { outGoingConnections.computeIfAbsent(c.getSourceId(), k -> new ArrayList<>()).add(c); incomingConnections.computeIfAbsent(c.getDestinationId(), k -> new ArrayList<>()).add(c); }
private boolean isHeadProcessor(NiFiFlow nifiFlow, List<ConnectionStatus> ins) { if (ins == null || ins.isEmpty()) { return true; } return ins.stream().allMatch( in -> { // If it has incoming relationship from other process components, then return false. final String sourceId = in.getSourceId(); if (nifiFlow.isProcessComponent(sourceId)) { return false; } // Check next level. final List<ConnectionStatus> incomingConnections = nifiFlow.getIncomingConnections(sourceId); return isHeadProcessor(nifiFlow, incomingConnections); } ); }
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 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()); } }