private void serializePortStatus(final String componentType, final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final PortStatus 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 componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "activeThreadCount", status.getActiveThreadCount()); addField(builder, "bytesReceived", status.getBytesReceived()); addField(builder, "bytesSent", status.getBytesSent()); addField(builder, "flowFilesReceived", status.getFlowFilesReceived()); addField(builder, "flowFilesSent", status.getFlowFilesSent()); addField(builder, "inputBytes", status.getInputBytes()); addField(builder, "inputCount", status.getInputCount()); addField(builder, "outputBytes", status.getOutputBytes()); addField(builder, "outputCount", status.getOutputCount()); arrayBuilder.add(builder.build()); } }
@Override public PortStatus clone() { final PortStatus clonedObj = new PortStatus(); clonedObj.id = id; clonedObj.groupId = groupId; clonedObj.name = name; clonedObj.activeThreadCount = activeThreadCount; clonedObj.inputBytes = inputBytes; clonedObj.inputCount = inputCount; clonedObj.outputBytes = outputBytes; clonedObj.outputCount = outputCount; clonedObj.flowFilesReceived = flowFilesReceived; clonedObj.bytesReceived = bytesReceived; clonedObj.flowFilesSent = flowFilesSent; clonedObj.bytesSent = bytesSent; clonedObj.transmitting = transmitting; clonedObj.runStatus = runStatus; return clonedObj; }
public Map<String,String> getPortStatusTags(PortStatus status) { final Map<String, String> portTags = new HashMap<>(); portTags.put(MetricNames.PORT_ID, status.getId()); portTags.put(MetricNames.PORT_GROUP_ID, status.getGroupId()); portTags.put(MetricNames.PORT_NAME, status.getName()); return portTags; }
public Map<String, Double> getPortStatusMetrics(PortStatus status){ final Map<String, Double> metrics = new HashMap<>(); metrics.put(MetricNames.ACTIVE_THREADS, new Double(status.getActiveThreadCount())); metrics.put(MetricNames.INPUT_COUNT, new Double(status.getInputCount())); metrics.put(MetricNames.OUTPUT_COUNT, new Double(status.getOutputCount())); metrics.put(MetricNames.INPUT_BYTES, new Double(status.getInputBytes())); metrics.put(MetricNames.OUTPUT_BYTES, new Double(status.getOutputBytes())); metrics.put(MetricNames.FLOW_FILES_RECEIVED, new Double(status.getFlowFilesReceived())); metrics.put(MetricNames.FLOW_FILES_SENT, new Double(status.getFlowFilesSent())); metrics.put(MetricNames.BYTES_RECEIVED, new Double(status.getBytesReceived())); metrics.put(MetricNames.BYTES_SENT, new Double(status.getBytesSent())); return metrics; }
mergedInputPortMap.put(status.getId(), status); PortStatus merged = mergedInputPortMap.get(statusToMerge.getId()); if (merged == null) { mergedInputPortMap.put(statusToMerge.getId(), statusToMerge.clone()); continue; merged.setInputBytes(merged.getInputBytes() + statusToMerge.getInputBytes()); merged.setInputCount(merged.getInputCount() + statusToMerge.getInputCount()); merged.setOutputBytes(merged.getOutputBytes() + statusToMerge.getOutputBytes()); merged.setOutputCount(merged.getOutputCount() + statusToMerge.getOutputCount()); merged.setActiveThreadCount(merged.getActiveThreadCount() + statusToMerge.getActiveThreadCount()); if (statusToMerge.isTransmitting() != null && statusToMerge.isTransmitting()) { merged.setTransmitting(true); if (RunStatus.Invalid.equals(statusToMerge.getRunStatus())) { merged.setRunStatus(RunStatus.Invalid); mergedOutputPortMap.put(status.getId(), status); PortStatus merged = mergedOutputPortMap.get(statusToMerge.getId()); if (merged == null) { mergedOutputPortMap.put(statusToMerge.getId(), statusToMerge.clone()); continue; merged.setInputBytes(merged.getInputBytes() + statusToMerge.getInputBytes()); merged.setInputCount(merged.getInputCount() + statusToMerge.getInputCount()); merged.setOutputBytes(merged.getOutputBytes() + statusToMerge.getOutputBytes()); merged.setOutputCount(merged.getOutputCount() + statusToMerge.getOutputCount());
/** * Creates a PortStatusDTO for the specified PortStatus. * * @param portStatus status * @return dto */ public PortStatusDTO createPortStatusDto(final PortStatus portStatus) { final PortStatusDTO dto = new PortStatusDTO(); dto.setId(portStatus.getId()); dto.setGroupId(portStatus.getGroupId()); dto.setName(portStatus.getName()); dto.setRunStatus(portStatus.getRunStatus().toString()); dto.setTransmitting(portStatus.isTransmitting()); dto.setStatsLastRefreshed(new Date()); final PortStatusSnapshotDTO snapshot = new PortStatusSnapshotDTO(); dto.setAggregateSnapshot(snapshot); snapshot.setId(portStatus.getId()); snapshot.setGroupId(portStatus.getGroupId()); snapshot.setName(portStatus.getName()); snapshot.setRunStatus(portStatus.getRunStatus().toString()); snapshot.setActiveThreadCount(portStatus.getActiveThreadCount()); snapshot.setFlowFilesOut(portStatus.getOutputCount()); snapshot.setBytesOut(portStatus.getOutputBytes()); snapshot.setFlowFilesIn(portStatus.getInputCount()); snapshot.setBytesIn(portStatus.getInputBytes()); StatusMerger.updatePrettyPrintedFields(snapshot); return dto; }
final PortStatus portStatus = new PortStatus(); portStatus.setId(port.getIdentifier()); portStatus.setGroupId(port.getProcessGroup().getIdentifier()); portStatus.setName(isInputPortAuthorized ? port.getName() : port.getIdentifier()); portStatus.setActiveThreadCount(processScheduler.getActiveThreadCount(port)); portStatus.setRunStatus(RunStatus.Running); } else if (ScheduledState.DISABLED.equals(port.getScheduledState())) { portStatus.setRunStatus(RunStatus.Disabled); } else if (!port.isValid()) { portStatus.setRunStatus(RunStatus.Invalid); } else { portStatus.setRunStatus(RunStatus.Stopped); portStatus.setTransmitting(rootGroupPort.isTransmitting()); portStatus.setInputBytes(0L); portStatus.setInputCount(0); portStatus.setOutputBytes(0L); portStatus.setOutputCount(0); } else { final int processedCount = entry.getFlowFilesOut(); final long numProcessedBytes = entry.getContentSizeOut(); portStatus.setOutputBytes(numProcessedBytes); portStatus.setOutputCount(processedCount); portStatus.setInputBytes(inputBytes); portStatus.setInputCount(inputCount);
public void addInputPort(PortStatus port) { inputPorts.put(port.getId(), port); }
public String getProcessComponentName(String componentId, Supplier<String> unknown) { return isProcessor(componentId) ? getProcessors().get(componentId).getName() : isRootInputPort(componentId) ? getRootInputPorts().get(componentId).getName() : isRootOutputPort(componentId) ? getRootOutputPorts().get(componentId).getName() : unknown.get(); }
public void addOutputPort(PortStatus port) { outputPorts.put(port.getId(), port); }
public String getProcessComponentName(String componentId, Supplier<String> unknown) { return isProcessor(componentId) ? getProcessors().get(componentId).getName() : isRootInputPort(componentId) ? getRootInputPorts().get(componentId).getName() : isRootOutputPort(componentId) ? getRootOutputPorts().get(componentId).getName() : unknown.get(); }
/** * Gets the status for the specified input port. * * @param portId input port id * @return the status for the specified input port */ public PortStatus getInputPortStatus(final String portId) { final ProcessGroup root = getRootGroup(); final Port port = root.findInputPort(portId); // ensure the input port was found if (port == null) { throw new ResourceNotFoundException(String.format("Unable to locate input port with id '%s'.", portId)); } final String groupId = port.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 PortStatus status = processGroupStatus.getInputPortStatus().stream().filter(portStatus -> portId.equals(portStatus.getId())).findFirst().orElse(null); if (status == null) { throw new ResourceNotFoundException(String.format("Unable to locate input port with id '%s'.", portId)); } return status; }
private void serializePortStatus(final String componentType, final JsonArrayBuilder arrayBuilder, final JsonBuilderFactory factory, final PortStatus 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 componentName = status.getName(); if (componentMatchesFilters(componentType, componentName)) { addCommonFields(builder, df, hostname, applicationName, platform, parentId, currentDate, componentType, componentName); addField(builder, "componentId", status.getId()); addField(builder, "activeThreadCount", status.getActiveThreadCount()); addField(builder, "bytesReceived", status.getBytesReceived()); addField(builder, "bytesSent", status.getBytesSent()); addField(builder, "flowFilesReceived", status.getFlowFilesReceived()); addField(builder, "flowFilesSent", status.getFlowFilesSent()); addField(builder, "inputBytes", status.getInputBytes()); addField(builder, "inputCount", status.getInputCount()); addField(builder, "outputBytes", status.getOutputBytes()); addField(builder, "outputCount", status.getOutputCount()); arrayBuilder.add(builder.build()); } }
/** * Gets the status for the specified output port. * * @param portId output port id * @return the status for the specified output port */ public PortStatus getOutputPortStatus(final String portId) { final ProcessGroup root = getRootGroup(); final Port port = root.findOutputPort(portId); // ensure the output port was found if (port == null) { throw new ResourceNotFoundException(String.format("Unable to locate output port with id '%s'.", portId)); } final String groupId = port.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 PortStatus status = processGroupStatus.getOutputPortStatus().stream().filter(portStatus -> portId.equals(portStatus.getId())).findFirst().orElse(null); if (status == null) { throw new ResourceNotFoundException(String.format("Unable to locate output port with id '%s'.", portId)); } return status; }
final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(inputPort)); final PortStatusDTO status = getComponentStatus( () -> groupStatus.getInputPortStatus().stream().filter(inputPortStatus -> inputPort.getIdentifier().equals(inputPortStatus.getId())).findFirst().orElse(null), inputPortStatus -> createPortStatusDto(inputPortStatus) ); final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(outputPort)); final PortStatusDTO status = getComponentStatus( () -> groupStatus.getOutputPortStatus().stream().filter(outputPortStatus -> outputPort.getIdentifier().equals(outputPortStatus.getId())).findFirst().orElse(null), outputPortStatus -> createPortStatusDto(outputPortStatus) );