public static ComponentDetails forProcessor(final String id, final String groupId, final String processorName, final String processorType) { return new ComponentDetails(id, groupId, processorName, processorType, null, null, null); }
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); } }
private void updateStatusHistory(final StatusSnapshot statusSnapshot, final ComponentDetails componentDetails, final Date timestamp) { final String componentId = componentDetails.getComponentId(); final ComponentStatusHistory procHistory = componentStatusHistories.computeIfAbsent(componentId, id -> new ComponentStatusHistory(componentDetails, numDataPoints)); procHistory.update(statusSnapshot, componentDetails); }
public StatusHistory toStatusHistory(final List<Date> timestamps, final boolean includeCounters, final Set<MetricDescriptor<?>> defaultStatusMetrics) { final Date dateGenerated = new Date(); final Map<String, String> componentDetailsMap = componentDetails.toMap(); final List<StatusSnapshot> snapshotList = snapshots.getSnapshots(timestamps, includeCounters, defaultStatusMetrics); return new StandardStatusHistory(snapshotList, componentDetailsMap, dateGenerated); } }
public static ComponentDetails forProcessGroup(final ProcessGroupStatus status) { return forProcessGroup(status.getId(), status.getName()); }
public static ComponentDetails forProcessor(final ProcessorStatus status) { return forProcessor(status.getId(), status.getGroupId(), status.getName(), status.getType()); }
public static ComponentDetails forRemoteProcessGroup(final RemoteProcessGroupStatus status) { return forRemoteProcessGroup(status.getId(), status.getGroupId(), status.getName(), status.getTargetUri()); }
public static ComponentDetails forConnection(final ConnectionStatus status) { return forConnection(status.getId(), status.getGroupId(), status.getName(), status.getSourceName(), status.getDestinationName()); }
public static ComponentDetails forConnection(final String id, final String groupId, final String connectionName, final String sourceName, final String destinationName) { return new ComponentDetails(id, groupId, connectionName, sourceName, destinationName, null, null); }
public static ComponentDetails forProcessGroup(final String id, final String groupName) { return new ComponentDetails(id,null, groupName, null, null, null, null); }
public static ComponentDetails forRemoteProcessGroup(final String id, final String parentGroupId, final String rpgName, final String remoteUri) { return new ComponentDetails(id, parentGroupId, rpgName, null, null, null, remoteUri); }