private void populateProcessorStatuses(final ProcessGroupStatus groupStatus, final List<ProcessorStatus> statuses) { statuses.addAll(groupStatus.getProcessorStatus()); for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) { populateProcessorStatuses(childGroupStatus, statuses); } }
private void populateProcessorStatuses(final ProcessGroupStatus groupStatus, final List<ProcessorStatus> statuses) { statuses.addAll(groupStatus.getProcessorStatus()); for (final ProcessGroupStatus childGroupStatus : groupStatus.getProcessGroupStatus()) { populateProcessorStatuses(childGroupStatus, statuses); } }
private static long calculateTaskMillis(final ProcessGroupStatus status) { long nanos = 0L; for (final ProcessorStatus procStatus : status.getProcessorStatus()) { nanos += procStatus.getProcessingNanos(); } for (final ProcessGroupStatus childStatus : status.getProcessGroupStatus()) { nanos += calculateTaskMillis(childStatus); } return TimeUnit.MILLISECONDS.convert(nanos, TimeUnit.NANOSECONDS); } }
protected long calculateProcessingNanos(final ProcessGroupStatus status) { long nanos = 0L; for (final ProcessorStatus procStats : status.getProcessorStatus()) { nanos += procStats.getProcessingNanos(); } for (final ProcessGroupStatus childGroupStatus : status.getProcessGroupStatus()) { nanos += calculateProcessingNanos(childGroupStatus); } return nanos; }
private long calculateProcessingNanos(final ProcessGroupStatus status) { long nanos = 0L; for (final ProcessorStatus procStats : status.getProcessorStatus()) { nanos += procStats.getProcessingNanos(); } for (final ProcessGroupStatus childGroupStatus : status.getProcessGroupStatus()) { nanos += calculateProcessingNanos(childGroupStatus); } return nanos; }
protected long calculateProcessingNanos(final ProcessGroupStatus status) { long nanos = 0L; for (final ProcessorStatus procStats : status.getProcessorStatus()) { nanos += procStats.getProcessingNanos(); } for (final ProcessGroupStatus childGroupStatus : status.getProcessGroupStatus()) { nanos += calculateProcessingNanos(childGroupStatus); } return nanos; }
/** * Calculate the total processing time of a process group. * * @param status the current process group status. * @return the total amount of nanoseconds spent in each processor in the process group. */ private long calculateProcessingNanos(final ProcessGroupStatus status) { long nanos = 0L; for (final ProcessorStatus procStats : status.getProcessorStatus()) { nanos += procStats.getProcessingNanos(); } for (final ProcessGroupStatus childGroupStatus : status.getProcessGroupStatus()) { nanos += calculateProcessingNanos(childGroupStatus); } return nanos; } }
private void analyzeProcessGroup(final ProcessGroupStatus processGroupStatus, final NiFiFlow nifiFlow) { processGroupStatus.getConnectionStatus().forEach(c -> nifiFlow.addConnection(c)); processGroupStatus.getProcessorStatus().forEach(p -> nifiFlow.addProcessor(p)); processGroupStatus.getRemoteProcessGroupStatus().forEach(r -> nifiFlow.addRemoteProcessGroup(r)); processGroupStatus.getInputPortStatus().forEach(p -> nifiFlow.addInputPort(p)); processGroupStatus.getOutputPortStatus().forEach(p -> nifiFlow.addOutputPort(p)); // Analyze child ProcessGroups recursively. for (ProcessGroupStatus child : processGroupStatus.getProcessGroupStatus()) { analyzeProcessGroup(child, nifiFlow); } }
/** * Gets the status for the specified processor. * * @param processorId processor id * @return the status for the specified processor */ public ProcessorStatus getProcessorStatus(final String processorId) { final ProcessGroup root = getRootGroup(); final ProcessorNode processor = root.findProcessor(processorId); // ensure the processor was found if (processor == null) { throw new ResourceNotFoundException(String.format("Unable to locate processor with id '%s'.", processorId)); } // calculate the process group status final String groupId = processor.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 ProcessorStatus status = processGroupStatus.getProcessorStatus().stream().filter(processorStatus -> processorId.equals(processorStatus.getId())).findFirst().orElse(null); if (status == null) { throw new ResourceNotFoundException(String.format("Unable to locate processor with id '%s'.", processorId)); } return status; }
componentNameMap.put(status.getId(), status.getName()); for (final ProcessorStatus procStatus : status.getProcessorStatus()) { componentNameMap.put(procStatus.getId(), procStatus.getName()); componentToParentGroupMap.put(procStatus.getId(), thisProcessGroupNode);
final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(procNode)); final ProcessorStatusDTO status = getComponentStatus( () -> groupStatus.getProcessorStatus().stream().filter(processorStatus -> procNode.getIdentifier().equals(processorStatus.getId())).findFirst().orElse(null), processorStatus -> createProcessorStatusDto(processorStatus) );
final PermissionsDTO operatePermissions = createPermissionsDto(new OperationAuthorizable(processor)); final ProcessorStatusDTO status = getComponentStatus( () -> groupStatus.getProcessorStatus().stream().filter(processorStatus -> processor.getIdentifier().equals(processorStatus.getId())).findFirst().orElse(null), processorStatus -> createProcessorStatusDto(processorStatus) );
final Collection<ProcessorStatus> processorStatusCollection = processGroupStatus.getProcessorStatus(); if (processorStatusCollection != null) { for (final ProcessorStatus processorStatus : processorStatusCollection) {
private void capture(final ProcessGroupStatus groupStatus, final Date timestamp) { // Capture status for the ProcessGroup final ComponentDetails groupDetails = ComponentDetails.forProcessGroup(groupStatus); final StatusSnapshot groupSnapshot = ComponentMetrics.createSnapshot(groupStatus, timestamp); updateStatusHistory(groupSnapshot, groupDetails, timestamp); // Capture statuses for the Processors for (final ProcessorStatus processorStatus : groupStatus.getProcessorStatus()) { final ComponentDetails componentDetails = ComponentDetails.forProcessor(processorStatus); final StatusSnapshot snapshot = ComponentMetrics.createSnapshot(processorStatus, timestamp); updateStatusHistory(snapshot, componentDetails, timestamp); } // Capture statuses for the Connections for (final ConnectionStatus connectionStatus : groupStatus.getConnectionStatus()) { final ComponentDetails componentDetails = ComponentDetails.forConnection(connectionStatus); final StatusSnapshot snapshot = ComponentMetrics.createSnapshot(connectionStatus, timestamp); updateStatusHistory(snapshot, componentDetails, timestamp); } // Capture statuses for the RPG's for (final RemoteProcessGroupStatus rpgStatus : groupStatus.getRemoteProcessGroupStatus()) { final ComponentDetails componentDetails = ComponentDetails.forRemoteProcessGroup(rpgStatus); final StatusSnapshot snapshot = ComponentMetrics.createSnapshot(rpgStatus, timestamp); updateStatusHistory(snapshot, componentDetails, timestamp); } // Capture statuses for the child groups for (final ProcessGroupStatus childStatus : groupStatus.getProcessGroupStatus()) { capture(childStatus, timestamp); } }
for (final ProcessorStatus status : target.getProcessorStatus()) { mergedProcessorMap.put(status.getId(), status); for (final ProcessorStatus statusToMerge : toMerge.getProcessorStatus()) { ProcessorStatus merged = mergedProcessorMap.get(statusToMerge.getId()); if (merged == null) {
applicationName, platform, status.getId(), currentDate); for(ProcessorStatus processorStatus : status.getProcessorStatus()) { serializeProcessorStatus(arrayBuilder, factory, processorStatus, df, hostname, applicationName, platform, status.getId(), currentDate);
private void analyzeProcessGroup(final ProcessGroupStatus processGroupStatus, final NiFiFlow nifiFlow) { processGroupStatus.getConnectionStatus().forEach(c -> nifiFlow.addConnection(c)); processGroupStatus.getProcessorStatus().forEach(p -> nifiFlow.addProcessor(p)); processGroupStatus.getRemoteProcessGroupStatus().forEach(r -> nifiFlow.addRemoteProcessGroup(r)); processGroupStatus.getInputPortStatus().forEach(p -> nifiFlow.addInputPort(p)); processGroupStatus.getOutputPortStatus().forEach(p -> nifiFlow.addOutputPort(p)); // Analyze child ProcessGroups recursively. for (ProcessGroupStatus child : processGroupStatus.getProcessGroupStatus()) { analyzeProcessGroup(child, nifiFlow); } }
private static void handleProcessorRequest(final RequestItem requestItem, ProcessGroupStatus rootGroupStatus, FlowController flowController, List<ProcessorStatusBean> processorStatusBeanList, Map<String, ProcessorStatus> processorStatusMap, Logger logger) throws StatusRequestException { if (processorStatusMap == null) { processorStatusMap = transformStatusCollection(rootGroupStatus.getProcessorStatus()); } String rootGroupId = flowController.getRootGroupId(); if (requestItem.identifier.equalsIgnoreCase("all")) { if (!processorStatusMap.isEmpty()) { for (ProcessorStatus processorStatus : new HashSet<>(processorStatusMap.values())) { Collection<ValidationResult> validationResults = flowController.getGroup(rootGroupId).getProcessor(processorStatus.getId()).getValidationErrors(); processorStatusBeanList.add(parseProcessorStatusRequest(processorStatus, requestItem.options, flowController, validationResults)); } } } else { if (processorStatusMap.containsKey(requestItem.identifier)) { ProcessorStatus processorStatus = processorStatusMap.get(requestItem.identifier); Collection<ValidationResult> validationResults = flowController.getGroup(rootGroupId).getProcessor(processorStatus.getId()).getValidationErrors(); processorStatusBeanList.add(parseProcessorStatusRequest(processorStatus, requestItem.options, flowController, validationResults)); } else { logger.warn("Status for processor with key " + requestItem.identifier + " was requested but one does not exist"); throw new StatusRequestException("No processor with key " + requestItem.identifier + " to report status on"); } } }
for (final ProcessorStatus procStatus : status.getProcessorStatus()) { if (procStatus.getId().equals(componentId)) { return procStatus.getName();
applicationName, platform, status.getId(), currentDate); for(ProcessorStatus processorStatus : status.getProcessorStatus()) { serializeProcessorStatus(arrayBuilder, factory, processorStatus, df, hostname, applicationName, platform, status.getId(), currentDate);