public class WebClusterManager extends Object implements HttpClusterManager, ProtocolHandler, ControllerServiceProvider, ReportingTaskProvider
Modifier and Type | Class and Description |
---|---|
private class |
WebClusterManager.CaptureComponentMetrics
Captures snapshots of components' metrics
|
private static class |
WebClusterManager.ClusterManagerLock |
private class |
WebClusterManager.HeartbeatMonitoringTimerTask
A timer task to detect nodes that have not sent a heartbeat in a while.
|
private class |
WebClusterManager.ProcessPendingHeartbeatsTask
This timer task simply processes any pending heartbeats.
|
Constructor and Description |
---|
WebClusterManager(HttpRequestReplicator httpRequestReplicator,
HttpResponseMapper httpResponseMapper,
DataFlowManagementService dataFlowManagementService,
ClusterManagerProtocolSenderListener senderListener,
NiFiProperties properties,
StringEncryptor encryptor,
OptimisticLockingManager optimisticLockingManager) |
public static final String ROOT_GROUP_ID_ALIAS
public static final String BULLETIN_CATEGORY
private static final org.slf4j.Logger logger
private static final org.slf4j.Logger heartbeatLogger
public static final String CLUSTER_CONTEXT_HTTP_HEADER
public static final String REQUEST_ID_HEADER
public static final String NCM_EXPECTS_HTTP_HEADER
public static final int NODE_CONTINUE_STATUS_CODE
public static final String CLUSTER_INVALIDATE_USER_GROUP_HEADER
public static final String CLUSTER_INVALIDATE_USER_HEADER
private static final int DEFAULT_CONNECTION_REQUEST_TRY_AGAIN_SECONDS
public static final String DEFAULT_COMPONENT_STATUS_REPO_IMPLEMENTATION
public static final Pattern PROCESSORS_URI_PATTERN
public static final Pattern PROCESSOR_URI_PATTERN
public static final Pattern PROCESSOR_STATE_URI_PATTERN
public static final Pattern CLUSTER_PROCESSOR_URI_PATTERN
public static final Pattern REMOTE_PROCESS_GROUPS_URI_PATTERN
public static final Pattern REMOTE_PROCESS_GROUP_URI_PATTERN
public static final Pattern PROCESS_GROUP_URI_PATTERN
public static final Pattern TEMPLATE_INSTANCE_URI_PATTERN
public static final Pattern FLOW_SNIPPET_INSTANCE_URI_PATTERN
public static final String PROVENANCE_URI
public static final Pattern PROVENANCE_QUERY_URI
public static final Pattern PROVENANCE_EVENT_URI
public static final Pattern COUNTERS_URI
public static final String CONTROLLER_SERVICES_URI
public static final Pattern CONTROLLER_SERVICE_URI_PATTERN
public static final Pattern CONTROLLER_SERVICE_STATE_URI_PATTERN
public static final Pattern CONTROLLER_SERVICE_REFERENCES_URI_PATTERN
public static final String REPORTING_TASKS_URI
public static final Pattern REPORTING_TASK_URI_PATTERN
public static final Pattern REPORTING_TASK_STATE_URI_PATTERN
@Deprecated public static final Pattern QUEUE_CONTENTS_URI
public static final Pattern DROP_REQUESTS_URI
public static final Pattern DROP_REQUEST_URI
public static final Pattern LISTING_REQUESTS_URI
public static final Pattern LISTING_REQUEST_URI
private final NiFiProperties properties
private final HttpRequestReplicator httpRequestReplicator
private final HttpResponseMapper httpResponseMapper
private final DataFlowManagementService dataFlowManagementService
private final ClusterManagerProtocolSenderListener senderListener
private final OptimisticLockingManager optimisticLockingManager
private final StringEncryptor encryptor
private final ReentrantReadWriteLock resourceRWLock
private final WebClusterManager.ClusterManagerLock readLock
private final WebClusterManager.ClusterManagerLock writeLock
private final ConcurrentMap<String,ReportingTaskNode> reportingTasks
private StandardDataFlow cachedDataFlow
private NodeIdentifier primaryNodeId
private Timer heartbeatMonitor
private Timer heartbeatProcessor
private volatile ClusterServicesBroadcaster servicesBroadcaster
private volatile EventManager eventManager
private volatile ClusterNodeFirewall clusterFirewall
private volatile AuditService auditService
private volatile ControllerServiceProvider controllerServiceProvider
private final RemoteSiteListener remoteSiteListener
private final Integer remoteInputPort
private final Boolean remoteCommsSecure
private final BulletinRepository bulletinRepository
private final String instanceId
private final FlowEngine reportingTaskEngine
private final Map<NodeIdentifier,ComponentStatusRepository> componentMetricsRepositoryMap
private final StandardProcessScheduler processScheduler
private final StateManagerProvider stateManagerProvider
private final long componentStatusSnapshotMillis
public WebClusterManager(HttpRequestReplicator httpRequestReplicator, HttpResponseMapper httpResponseMapper, DataFlowManagementService dataFlowManagementService, ClusterManagerProtocolSenderListener senderListener, NiFiProperties properties, StringEncryptor encryptor, OptimisticLockingManager optimisticLockingManager)
public void start() throws IOException
IOException
public void stop() throws IOException
IOException
public boolean isRunning()
public boolean canHandle(ProtocolMessage msg)
canHandle
in interface ProtocolHandler
public ProtocolMessage handle(ProtocolMessage protocolMessage) throws ProtocolException
handle
in interface ProtocolHandler
ProtocolException
private void notifyComponentsConfigurationRestored()
public ConnectionResponse requestConnection(ConnectionRequest request)
requestConnection
in interface ClusterManager
request
- a connection requestpublic void requestReconnection(String nodeId, String userDn) throws UnknownNodeException, IllegalNodeReconnectionException
requestReconnection
in interface ClusterManager
nodeId
- a node identifieruserDn
- the Distinguished Name of the user requesting the reconnectionUnknownNodeException
- if the node does not existIllegalNodeReconnectionException
- if the node cannot be reconnected because the node is not disconnectedNodeReconnectionException
- if the reconnection message failed to be sent or the cluster could not provide a current data flow for the reconnection requestprivate void requestReconnectionAsynchronously(Node node, boolean primaryRole, int reconnectionAttempts, int retrySeconds)
private Map<String,ReportingTaskNode> loadReportingTasks(byte[] serialized)
public ReportingTaskNode createReportingTask(String type, String id, boolean firstTimeAdded) throws ReportingTaskInstantiationException
createReportingTask
in interface ReportingTaskProvider
ReportingTaskInstantiationException
private Document parse(byte[] serialized) throws SAXException, ParserConfigurationException, IOException
private void addBulletin(NodeIdentifier nodeId, Severity severity, String msg)
public void requestDisconnection(String nodeId, String userDn) throws UnknownNodeException, IllegalNodeDisconnectionException, NodeDisconnectionException
requestDisconnection
in interface ClusterManager
nodeId
- a node identifieruserDn
- the DN of the user requesting the disconnectionUnknownNodeException
- if the node does not existIllegalNodeDisconnectionException
- if the node cannot be disconnected due to the cluster's state (e.g., node is last connected node or node is primary)NodeDisconnectionException
- if the disconnection message fails to be sent.private void requestDisconnectionQuietly(NodeIdentifier nodeId, String explanation)
nodeId
- the node IDprivate void requestDisconnection(NodeIdentifier nodeId, boolean ignoreNodeChecks, String explanation) throws IllegalNodeDisconnectionException, NodeDisconnectionException
nodeId
- the ID of the nodeignoreNodeChecks
- if false, checks will be made to ensure the cluster supports the node's disconnection (e.g., the node is not the last connected node in the cluster; the node is not the
primary); otherwise, the request is made regardless of the cluster stateexplanation
- IllegalNodeDisconnectionException
- if the node cannot be disconnected due to the cluster's state (e.g., node is last connected node or node is primary). Not thrown if ignoreNodeChecks is
true.NodeDisconnectionException
- if the disconnection message fails to be sent.private boolean assignPrimaryRole(NodeIdentifier nodeId)
nodeId
- the node ID to assign primary roleprivate boolean revokePrimaryRole(NodeIdentifier nodeId)
private NodeIdentifier addRequestorDn(NodeIdentifier nodeId, String dn)
private ConnectionResponseMessage handleConnectionRequest(ConnectionRequestMessage requestMessage)
private void handleControllerStartupFailure(ControllerStartupFailureMessage msg)
private void handleReconnectionFailure(ReconnectionFailureMessage msg)
public ControllerServiceNode createControllerService(String type, String id, boolean firstTimeAdded)
createControllerService
in interface ControllerServiceProvider
public StateManagerProvider getStateManagerProvider()
public ControllerService getControllerService(String serviceIdentifier)
getControllerService
in interface ControllerServiceLookup
public ControllerServiceNode getControllerServiceNode(String id)
getControllerServiceNode
in interface ControllerServiceProvider
public boolean isControllerServiceEnabled(ControllerService service)
isControllerServiceEnabled
in interface ControllerServiceLookup
public boolean isControllerServiceEnabled(String serviceIdentifier)
isControllerServiceEnabled
in interface ControllerServiceLookup
public boolean isControllerServiceEnabling(String serviceIdentifier)
isControllerServiceEnabling
in interface ControllerServiceLookup
public String getControllerServiceName(String serviceIdentifier)
getControllerServiceName
in interface ControllerServiceLookup
public void removeControllerService(ControllerServiceNode serviceNode)
removeControllerService
in interface ControllerServiceProvider
public void enableControllerService(ControllerServiceNode serviceNode)
enableControllerService
in interface ControllerServiceProvider
public void enableControllerServices(Collection<ControllerServiceNode> serviceNodes)
enableControllerServices
in interface ControllerServiceProvider
public void disableControllerService(ControllerServiceNode serviceNode)
disableControllerService
in interface ControllerServiceProvider
public Set<ControllerServiceNode> getAllControllerServices()
getAllControllerServices
in interface ControllerServiceProvider
public void disableReferencingServices(ControllerServiceNode serviceNode)
disableReferencingServices
in interface ControllerServiceProvider
public void enableReferencingServices(ControllerServiceNode serviceNode)
enableReferencingServices
in interface ControllerServiceProvider
public void scheduleReferencingComponents(ControllerServiceNode serviceNode)
scheduleReferencingComponents
in interface ControllerServiceProvider
public void unscheduleReferencingComponents(ControllerServiceNode serviceNode)
unscheduleReferencingComponents
in interface ControllerServiceProvider
public void verifyCanEnableReferencingServices(ControllerServiceNode serviceNode)
verifyCanEnableReferencingServices
in interface ControllerServiceProvider
public void verifyCanScheduleReferencingComponents(ControllerServiceNode serviceNode)
verifyCanScheduleReferencingComponents
in interface ControllerServiceProvider
public void verifyCanDisableReferencingServices(ControllerServiceNode serviceNode)
verifyCanDisableReferencingServices
in interface ControllerServiceProvider
public void verifyCanStopReferencingComponents(ControllerServiceNode serviceNode)
verifyCanStopReferencingComponents
in interface ControllerServiceProvider
private byte[] serialize(Document doc) throws TransformerException
TransformerException
private byte[] serializeControllerServices() throws ParserConfigurationException, TransformerException
private byte[] serializeReportingTasks() throws ParserConfigurationException, TransformerException
public void saveControllerServices()
public void saveReportingTasks()
public Set<ReportingTaskNode> getAllReportingTasks()
getAllReportingTasks
in interface ReportingTaskProvider
public ReportingTaskNode getReportingTaskNode(String taskId)
getReportingTaskNode
in interface ReportingTaskProvider
public void startReportingTask(ReportingTaskNode reportingTaskNode)
startReportingTask
in interface ReportingTaskProvider
public void stopReportingTask(ReportingTaskNode reportingTaskNode)
stopReportingTask
in interface ReportingTaskProvider
public void removeReportingTask(ReportingTaskNode reportingTaskNode)
removeReportingTask
in interface ReportingTaskProvider
public void disableReportingTask(ReportingTaskNode reportingTask)
disableReportingTask
in interface ReportingTaskProvider
public void enableReportingTask(ReportingTaskNode reportingTask)
enableReportingTask
in interface ReportingTaskProvider
public void handleBulletins(NodeBulletins bulletins)
bulletins
- bulletinspublic void handleHeartbeat(Heartbeat heartbeat)
handleHeartbeat
in interface ClusterManager
heartbeat
- a heartbeatprivate void processPendingHeartbeats()
private ComponentStatusRepository createComponentStatusRepository()
public Set<Node> getNodes(Node.Status... statuses)
getNodes
in interface ClusterManager
statuses
- the statuses of the nodespublic Node getNode(String nodeId)
getNode
in interface ClusterManager
nodeId
- node identifierpublic Node getPrimaryNode()
getPrimaryNode
in interface ClusterManager
public void deleteNode(String nodeId, String userDn) throws UnknownNodeException, IllegalNodeDeletionException
ClusterManager
deleteNode
in interface ClusterManager
nodeId
- the node identifieruserDn
- the Distinguished Name of the user requesting the node be deleted from the clusterUnknownNodeException
- if the node does not existIllegalNodeDeletionException
- if the node is not in a disconnected statepublic Set<NodeIdentifier> getNodeIds(Node.Status... statuses)
getNodeIds
in interface ClusterManager
statuses
- statusespublic void setPrimaryNode(String nodeId, String userDn) throws UnknownNodeException, IneligiblePrimaryNodeException, PrimaryRoleAssignmentException
ClusterManager
setPrimaryNode
in interface ClusterManager
nodeId
- the node identifieruserDn
- the Distinguished Name of the user requesting that the Primary Node be assignedUnknownNodeException
- if the node with the given identifier does not existIneligiblePrimaryNodeException
- if the node with the given identifier is not eligible to be the primary nodePrimaryRoleAssignmentException
- if the cluster was unable to change the primary role to the requested nodeprivate int getClusterProtocolHeartbeatSeconds()
public int getHeartbeatMonitoringIntervalSeconds()
getHeartbeatMonitoringIntervalSeconds
in interface ClusterManager
public int getMaxHeartbeatGapSeconds()
getMaxHeartbeatGapSeconds
in interface ClusterManager
public List<Event> getNodeEvents(String nodeId)
ClusterManager
getNodeEvents
in interface ClusterManager
nodeId
- the node identifierpublic NodeResponse applyRequest(String method, URI uri, Map<String,List<String>> parameters, Map<String,String> headers) throws NoConnectedNodesException, NoResponseFromNodesException, UriConstructionException, ConnectingNodeMutableRequestException, DisconnectedNodeMutableRequestException, SafeModeMutableRequestException
HttpClusterManager
applyRequest
in interface HttpClusterManager
method
- the HTTP method (e.g., GET, POST, PUT, DELETE, HEAD)uri
- the base request URI (up to, but not including, the query string)parameters
- the request parametersheaders
- the request headersNoConnectedNodesException
- if no nodes are connected as results of the requestNoResponseFromNodesException
- if no response could be obtainedUriConstructionException
- if there was an issue constructing the URIs tailored for each individual nodeConnectingNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is connecting to the clusterDisconnectedNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is disconnected from the clusterSafeModeMutableRequestException
- if the request was a PUT, POST, DELETE and a the cluster is in safe modepublic NodeResponse applyRequest(String method, URI uri, Map<String,List<String>> parameters, Map<String,String> headers, Set<NodeIdentifier> nodeIdentifiers) throws NoConnectedNodesException, NoResponseFromNodesException, UriConstructionException, ConnectingNodeMutableRequestException, DisconnectedNodeMutableRequestException, SafeModeMutableRequestException
HttpClusterManager
applyRequest
in interface HttpClusterManager
method
- the HTTP method (e.g., GET, POST, PUT, DELETE, HEAD)uri
- the base request URI (up to, but not including, the query string)parameters
- the request parametersheaders
- the request headersnodeIdentifiers
- the NodeIdentifier for each node that the request should be replaced toNoConnectedNodesException
- if no nodes are connected as results of the requestNoResponseFromNodesException
- if no response could be obtainedUriConstructionException
- if there was an issue constructing the URIs tailored for each individual nodeConnectingNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is connecting to the clusterDisconnectedNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is disconnected from the clusterSafeModeMutableRequestException
- if the request was a PUT, POST, DELETE and a the cluster is in safe modepublic NodeResponse applyRequest(String method, URI uri, Object entity, Map<String,String> headers) throws NoConnectedNodesException, NoResponseFromNodesException, UriConstructionException, ConnectingNodeMutableRequestException, DisconnectedNodeMutableRequestException, SafeModeMutableRequestException
HttpClusterManager
applyRequest
in interface HttpClusterManager
method
- the HTTP method (e.g., GET, POST, PUT, DELETE, HEAD)uri
- the base request URI (up to, but not including, the query string)entity
- the HTTP request entityheaders
- the request headersNoConnectedNodesException
- if no nodes are connected as results of the requestNoResponseFromNodesException
- if no response could be obtainedUriConstructionException
- if there was an issue constructing the URIs tailored for each individual nodeConnectingNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is connecting to the clusterDisconnectedNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is disconnected from the clusterSafeModeMutableRequestException
- if the request was a PUT, POST, DELETE and a the cluster is in safe modepublic NodeResponse applyRequest(String method, URI uri, Object entity, Map<String,String> headers, Set<NodeIdentifier> nodeIdentifiers) throws NoConnectedNodesException, NoResponseFromNodesException, UriConstructionException, ConnectingNodeMutableRequestException, DisconnectedNodeMutableRequestException, SafeModeMutableRequestException
HttpClusterManager
applyRequest
in interface HttpClusterManager
method
- the HTTP method (e.g., GET, POST, PUT, DELETE, HEAD)uri
- the base request URI (up to, but not including, the query string)entity
- the HTTP request entityheaders
- the request headersnodeIdentifiers
- the NodeIdentifier for each node that the request should be replaced toNoConnectedNodesException
- if no nodes are connected as results of the requestNoResponseFromNodesException
- if no response could be obtainedUriConstructionException
- if there was an issue constructing the URIs tailored for each individual nodeConnectingNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is connecting to the clusterDisconnectedNodeMutableRequestException
- if the request was a PUT, POST, DELETE and a node is disconnected from the clusterSafeModeMutableRequestException
- if the request was a PUT, POST, DELETE and a the cluster is in safe modepublic void setServicesBroadcaster(ClusterServicesBroadcaster servicesBroadcaster)
public boolean addBroadcastedService(org.apache.nifi.io.socket.multicast.DiscoverableService service)
public boolean removeBroadcastedService(String serviceName)
public boolean isBroadcastingConfigured()
public boolean isBroadcasting()
public void addEvent(NodeIdentifier nodeId, String eventMsg)
public void setEventManager(EventManager eventManager)
public void setClusterFirewall(ClusterNodeFirewall clusterFirewall)
public boolean isFirewallConfigured()
public void setAuditService(AuditService auditService)
public boolean isAuditingConfigured()
private boolean isPrimaryNode(NodeIdentifier nodeId)
private boolean isInSafeMode()
private void setPrimaryNodeId(NodeIdentifier primaryNodeId) throws DaoException
DaoException
private NodeResponse federateRequest(String method, URI uri, Map<String,List<String>> parameters, Object entity, Map<String,String> headers, Set<NodeIdentifier> nodeIds) throws UriConstructionException
UriConstructionException
private static boolean isRemoteProcessGroupsEndpoint(URI uri, String method)
private static boolean isRemoteProcessGroupEndpoint(URI uri, String method)
private static boolean isCountersEndpoint(URI uri)
private static boolean isControllerServicesEndpoint(URI uri, String method)
private static boolean isControllerServiceEndpoint(URI uri, String method)
private static boolean isControllerServiceStateEndpoint(URI uri, String method)
private static boolean isControllerServiceReferenceEndpoint(URI uri, String method)
private static boolean isReportingTaskStateEndpoint(URI uri, String method)
private void mergeProcessorValidationErrors(ProcessorDTO processor, Map<NodeIdentifier,ProcessorDTO> processorMap)
private void mergeComponentState(ComponentStateDTO componentState, Map<NodeIdentifier,ComponentStateDTO> componentStateMap)
private void mergeProvenanceQueryResults(ProvenanceDTO provenanceDto, Map<NodeIdentifier,ProvenanceDTO> resultMap, Set<NodeResponse> problematicResponses)
private void mergeRemoteProcessGroup(RemoteProcessGroupDTO remoteProcessGroup, Map<NodeIdentifier,RemoteProcessGroupDTO> remoteProcessGroupMap)
private void mergeControllerServiceReferences(Set<ControllerServiceReferencingComponentDTO> referencingComponents, Map<NodeIdentifier,Set<ControllerServiceReferencingComponentDTO>> referencingComponentMap)
private void mergeControllerService(ControllerServiceDTO controllerService, Map<NodeIdentifier,ControllerServiceDTO> controllerServiceMap)
private void mergeReportingTask(ReportingTaskDTO reportingTask, Map<NodeIdentifier,ReportingTaskDTO> reportingTaskMap)
public void mergeValidationErrors(Map<String,Set<NodeIdentifier>> validationErrorMap, NodeIdentifier nodeId, Collection<String> nodeValidationErrors)
validationErrorMap
- mapnodeId
- idnodeValidationErrors
- errorspublic Set<String> normalizedMergedValidationErrors(Map<String,Set<NodeIdentifier>> validationErrorMap, int totalNodes)
validationErrorMap
- maptotalNodes
- totalprivate void mergeListingRequests(ListingRequestDTO listingRequest, Map<NodeIdentifier,ListingRequestDTO> listingRequestMap)
listingRequest
- the target listing requestlistingRequestMap
- the mapping of all responses being mergedprivate void mergeDropRequests(DropRequestDTO dropRequest, Map<NodeIdentifier,DropRequestDTO> dropRequestMap)
dropRequest
- the target drop requestdropRequestMap
- the mapping of all responses being mergedprivate NodeResponse mergeResponses(URI uri, String method, Set<NodeResponse> nodeResponses, boolean mutableRequest)
private boolean isMissingCounter(Set<NodeResponse> problematicNodeResponses, URI uri)
problematicNodeResponses
- The problematic node responsesuri
- The URI for the requestprivate void drainResponses(Collection<NodeResponse> nodeResponses)
nodeResponses
- the collection of node responsesprivate void disconnectNodes(Set<NodeResponse> nodeResponses, String explanation)
private boolean isBlockedByFirewall(String ip)
ip
- the IP of the remote machineprivate Set<Node> getRawNodes(Node.Status... statuses)
private NodeIdentifier resolveProposedNodeIdentifier(NodeIdentifier proposedNodeId) throws ConflictingNodeIdException
proposedNodeId
- a proposed identifierConflictingNodeIdException
private boolean isHeartbeatMonitorRunning()
private void notifyDataFlowManagementServiceOfNodeStatusChange()
private void notifyDataFlowManagmentServiceOfFlowStateChange(PersistedFlowState newState)
private void logNodes(String header, org.slf4j.Logger logger)
private void executeSafeModeTask()
public ClusterNodeInformation getNodeInformation()
getNodeInformation
in interface NodeInformant
public BulletinRepository getBulletinRepository()
getBulletinRepository
in interface ClusterManager
public ProcessGroupStatus getProcessGroupStatus(String groupId)
getProcessGroupStatus
in interface ClusterManager
groupId
- groupIdProcessGroupStatus
that represents the status of all nodes with the given Node.Status
es for the given ProcessGroup id, or null if no nodes exist with the given statusesprivate ProcessGroupStatus getProcessGroupStatus(ProcessGroupStatus parent, String groupId)
public SystemDiagnostics getSystemDiagnostics()
getSystemDiagnostics
in interface ClusterManager
private void merge(SystemDiagnostics target, SystemDiagnostics sd)
private void merge(StorageUsage target, StorageUsage du)
private void merge(GarbageCollection target, GarbageCollection gc)
public static Date normalizeStatusSnapshotDate(Date toNormalize, long numMillis)
private List<StatusSnapshotDTO> aggregate(Map<Date,List<StatusSnapshot>> snapshotsToAggregate)
public ClusterStatusHistoryDTO getProcessorStatusHistory(String processorId)
public ClusterStatusHistoryDTO getProcessorStatusHistory(String processorId, Date startDate, Date endDate, int preferredDataPoints)
public StatusHistoryDTO createStatusHistoryDto(StatusHistory statusHistory)
public ClusterStatusHistoryDTO getConnectionStatusHistory(String connectionId)
public ClusterStatusHistoryDTO getConnectionStatusHistory(String connectionId, Date startDate, Date endDate, int preferredDataPoints)
public ClusterStatusHistoryDTO getProcessGroupStatusHistory(String processGroupId)
public ClusterStatusHistoryDTO getProcessGroupStatusHistory(String processGroupId, Date startDate, Date endDate, int preferredDataPoints)
public ClusterStatusHistoryDTO getRemoteProcessGroupStatusHistory(String remoteGroupId)
public ClusterStatusHistoryDTO getRemoteProcessGroupStatusHistory(String remoteGroupId, Date startDate, Date endDate, int preferredDataPoints)
public Set<String> getControllerServiceIdentifiers(Class<? extends ControllerService> serviceType)
getControllerServiceIdentifiers
in interface ControllerServiceLookup
Copyright © 2016 Apache NiFi Project. All rights reserved.