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; }
/** * Gets the status for the specified connection. * * @param connectionId connection id * @return the status for the specified connection */ public ConnectionStatus getConnectionStatus(final String connectionId) { final ProcessGroup root = getRootGroup(); final Connection connection = root.findConnection(connectionId); // ensure the connection was found if (connection == null) { throw new ResourceNotFoundException(String.format("Unable to locate connection with id '%s'.", connectionId)); } // calculate the process group status final String groupId = connection.getProcessGroup().getIdentifier(); final ProcessGroupStatus processGroupStatus = flowController.getEventAccess().getGroupStatus(groupId, NiFiUserUtils.getNiFiUser(), 1); if (processGroupStatus == null) { throw new ResourceNotFoundException(String.format("Unable to locate group with id '%s'.", groupId)); } final ConnectionStatus status = processGroupStatus.getConnectionStatus().stream().filter(connectionStatus -> connectionId.equals(connectionStatus.getId())).findFirst().orElse(null); if (status == null) { throw new ResourceNotFoundException(String.format("Unable to locate connection with id '%s'.", connectionId)); } return status; }
public static ComponentDetails forConnection(final ConnectionStatus status) { return forConnection(status.getId(), status.getGroupId(), status.getName(), status.getSourceName(), status.getDestinationName()); }
final String queuedDiff; final ConnectionStatus lastStatus = lastConnectionStatus.get(connectionStatus.getId()); if (showDeltas && lastStatus != null) { inputDiff = toDiff(lastStatus.getInputCount(), lastStatus.getInputBytes(), connectionStatus.getInputCount(), connectionStatus.getInputBytes()); connectionStatus.getId(), connectionStatus.getSourceName(), connectionStatus.getName(), } else { builder.append(String.format(connectionLineFormat, connectionStatus.getId(), connectionStatus.getSourceName(), connectionStatus.getName(), lastConnectionStatus.put(connectionStatus.getId(), connectionStatus);
final PermissionsDTO permissions = createPermissionsDto(connNode); final ConnectionStatusDTO status = getComponentStatus( () -> groupStatus.getConnectionStatus().stream().filter(connectionStatus -> connNode.getIdentifier().equals(connectionStatus.getId())).findFirst().orElse(null), connectionStatus -> createConnectionStatusDto(connectionStatus) );
final PermissionsDTO accessPolicy = createPermissionsDto(connection); final ConnectionStatusDTO status = getComponentStatus( () -> groupStatus.getConnectionStatus().stream().filter(connectionStatus -> connection.getIdentifier().equals(connectionStatus.getId())).findFirst().orElse(null), connectionStatus -> createConnectionStatusDto(connectionStatus) );
public ConnectionStatusDTO createConnectionStatusDto(final ConnectionStatus connectionStatus) { final ConnectionStatusDTO connectionStatusDto = new ConnectionStatusDTO(); connectionStatusDto.setGroupId(connectionStatus.getGroupId()); connectionStatusDto.setId(connectionStatus.getId()); connectionStatusDto.setName(connectionStatus.getName()); connectionStatusDto.setSourceId(connectionStatus.getSourceId()); connectionStatusDto.setAggregateSnapshot(snapshot); snapshot.setId(connectionStatus.getId()); snapshot.setGroupId(connectionStatus.getGroupId()); snapshot.setName(connectionStatus.getName());
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()); } }
private static <E> Map<String, E> transformStatusCollection(Collection<E> statusCollection) { Map<String, E> statusMap = new HashMap<>(); for (E status : statusCollection) { if (status instanceof ProcessorStatus) { statusMap.put(((ProcessorStatus) status).getId(), status); if (((ProcessorStatus) status).getName() != null) { statusMap.put(((ProcessorStatus) status).getName(), status); } } else if (status instanceof ConnectionStatus) { statusMap.put(((ConnectionStatus) status).getId(), status); if (((ConnectionStatus) status).getName() != null) { statusMap.put(((ConnectionStatus) status).getName(), status); } } else if (status instanceof RemoteProcessGroupStatus) { statusMap.put(((RemoteProcessGroupStatus) status).getId(), status); if (((RemoteProcessGroupStatus) status).getName() != null) { statusMap.put(((RemoteProcessGroupStatus) status).getName(), status); } } } return statusMap; }
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()); } }