public interface ProvenanceReporter
ProcessSession
. Any events
that are generated are reported to Provenance only after the session has been
committed. If the session is rolled back, the events related to that session
are purged.Modifier and Type | Method and Description |
---|---|
void |
associate(FlowFile flowFile,
String alternateIdentifierNamespace,
String alternateIdentifier)
Emits a Provenance Event of type
ADDINFO that provides a linkage
between the given FlowFile and alternate identifier. |
void |
clone(FlowFile parent,
FlowFile child)
Emits a Provenance Event of type
CLONE
that establishes that the given child is an exact replica of the parent. |
void |
create(FlowFile flowFile)
Emits a Provenance Event of type
CREATE that indicates that the given
FlowFile was created by NiFi from data that was not received from an
external entity. |
void |
create(FlowFile flowFile,
String details)
Emits a Provenance Event of type
CREATE that indicates that the given
FlowFile was created by NiFi from data that was not received from an
external entity. |
void |
fetch(FlowFile flowFile,
String transitUri)
Emits a Provenance Event of type
FETCH that indicates that the content of the given
FlowFile was overwritten with the data received from an external source. |
void |
fetch(FlowFile flowFile,
String transitUri,
long transmissionMillis)
Emits a Provenance Event of type
FETCH that indicates that the content of the given
FlowFile was overwritten with the data received from an external source. |
void |
fetch(FlowFile flowFile,
String transitUri,
String details,
long transmissionMillis)
Emits a Provenance Event of type
FETCH that indicates that the content of the given
FlowFile was overwritten with the data received from an external source. |
void |
fork(FlowFile parent,
Collection<FlowFile> children)
Emits a Provenance Event of type
FORK
that establishes that the given parent was split into multiple child
FlowFiles. |
void |
fork(FlowFile parent,
Collection<FlowFile> children,
long forkDuration)
Emits a Provenance Event of type
FORK
that establishes that the given parent was split into multiple child
FlowFiles. |
void |
fork(FlowFile parent,
Collection<FlowFile> children,
String details)
Emits a Provenance Event of type
FORK
that establishes that the given parent was split into multiple child
FlowFiles. |
void |
fork(FlowFile parent,
Collection<FlowFile> children,
String details,
long forkDuration)
Emits a Provenance Event of type
FORK
that establishes that the given parent was split into multiple child
FlowFiles. |
long |
getBytesFetched() |
long |
getBytesReceived() |
long |
getBytesSent() |
int |
getFlowFilesFetched() |
int |
getFlowFilesReceived() |
int |
getFlowFilesSent() |
void |
invokeRemoteProcess(FlowFile flowFile,
String transitUri)
Emits a Provenance Event of type
ProvenanceEventType.REMOTE_INVOCATION
that indicates a remote invocation is requested to an external endpoint using
the given FlowFile. |
void |
invokeRemoteProcess(FlowFile flowFile,
String transitUri,
String details)
Emits a Provenance Event of type
ProvenanceEventType.REMOTE_INVOCATION
that indicates a remote invocation is requested to an external endpoint using
the given FlowFile. |
void |
join(Collection<FlowFile> parents,
FlowFile child)
Emits a Provenance Event of type
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. |
void |
join(Collection<FlowFile> parents,
FlowFile child,
long joinDuration)
Emits a Provenance Event of type
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. |
void |
join(Collection<FlowFile> parents,
FlowFile child,
String details)
Emits a Provenance Event of type
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. |
void |
join(Collection<FlowFile> parents,
FlowFile child,
String details,
long joinDuration)
Emits a Provenance Event of type
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. |
void |
modifyAttributes(FlowFile flowFile)
Emits a Provenance Event of type
ATTRIBUTES_MODIFIED that
indicates that the Attributes of the given FlowFile were updated. |
void |
modifyAttributes(FlowFile flowFile,
String details)
Emits a Provenance Event of type
ATTRIBUTES_MODIFIED that
indicates that the Attributes of the given FlowFile were updated. |
void |
modifyContent(FlowFile flowFile)
Emits a Provenance Event of type
CONTENT_MODIFIED that
indicates that the content of the given FlowFile has been modified. |
void |
modifyContent(FlowFile flowFile,
long processingMillis)
Emits a Provenance Event of type
CONTENT_MODIFIED that
indicates that the content of the given FlowFile has been modified. |
void |
modifyContent(FlowFile flowFile,
String details)
Emits a Provenance Event of type
CONTENT_MODIFIED that
indicates that the content of the given FlowFile has been modified. |
void |
modifyContent(FlowFile flowFile,
String details,
long processingMillis)
Emits a Provenance Event of type
CONTENT_MODIFIED that
indicates that the content of the given FlowFile has been modified. |
void |
receive(FlowFile flowFile,
String transitUri)
Emits a Provenance Event of type
RECEIVE that indicates that the given
FlowFile was created from data received from an external source. |
void |
receive(FlowFile flowFile,
String transitUri,
long transmissionMillis)
Emits a Provenance Event of type
RECEIVE that indicates that the given
FlowFile was created from data received from an external source. |
void |
receive(FlowFile flowFile,
String transitUri,
String sourceSystemFlowFileIdentifier)
Emits a Provenance Event of type
RECEIVE that indicates that the given
FlowFile was created from data received from the specified URI and that
the source system used the specified identifier (a URI with namespace) to
refer to the data. |
void |
receive(FlowFile flowFile,
String transitUri,
String details,
long transmissionMillis)
Emits a Provenance Event of type
RECEIVE that indicates that the given
FlowFile was created from data received from an external source and
provides additional details about the receipt of the FlowFile, such as a
remote system's Distinguished Name. |
void |
receive(FlowFile flowFile,
String transitUri,
String sourceSystemFlowFileIdentifier,
String details,
long transmissionMillis)
Emits a Provenance Event of type
RECEIVE that indicates that the given
FlowFile was created from data received from an external source and
provides additional details about the receipt of the FlowFile, such as a
remote system's Distinguished Name. |
void |
route(FlowFile flowFile,
Relationship relationship)
Emits a Provenance Event of type
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship . |
void |
route(FlowFile flowFile,
Relationship relationship,
long processingDuration)
Emits a Provenance Event of type
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship . |
void |
route(FlowFile flowFile,
Relationship relationship,
String details)
Emits a Provenance Event of type
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship . |
void |
route(FlowFile flowFile,
Relationship relationship,
String details,
long processingDuration)
Emits a Provenance Event of type
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship . |
void |
send(FlowFile flowFile,
String transitUri)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
boolean force)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
long transmissionMillis)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
long transmissionMillis,
boolean force)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
String details)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
String details,
boolean force)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
String details,
long transmissionMillis)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void |
send(FlowFile flowFile,
String transitUri,
String details,
long transmissionMillis,
boolean force)
Emits a Provenance Event of type
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. |
void receive(FlowFile flowFile, String transitUri)
RECEIVE
that indicates that the given
FlowFile was created from data received from an external source.flowFile
- the FlowFile that was receivedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.void receive(FlowFile flowFile, String transitUri, String sourceSystemFlowFileIdentifier)
RECEIVE
that indicates that the given
FlowFile was created from data received from the specified URI and that
the source system used the specified identifier (a URI with namespace) to
refer to the data.flowFile
- the FlowFile that was receivedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.sourceSystemFlowFileIdentifier
- the URI/identifier that the source
system uses to refer to the data; if this value is non-null and is not a
URI, the prefix "urn:tdo:" will be used to form a URI.void receive(FlowFile flowFile, String transitUri, long transmissionMillis)
RECEIVE
that indicates that the given
FlowFile was created from data received from an external source.flowFile
- the FlowFile that was receivedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.transmissionMillis
- the number of milliseconds taken to transfer
the datavoid receive(FlowFile flowFile, String transitUri, String details, long transmissionMillis)
RECEIVE
that indicates that the given
FlowFile was created from data received from an external source and
provides additional details about the receipt of the FlowFile, such as a
remote system's Distinguished Name.flowFile
- the FlowFile that was receivedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.details
- details about the receive event; for example, it may be
relevant to include the DN of the sending systemtransmissionMillis
- the number of milliseconds taken to transfer
the datavoid receive(FlowFile flowFile, String transitUri, String sourceSystemFlowFileIdentifier, String details, long transmissionMillis)
RECEIVE
that indicates that the given
FlowFile was created from data received from an external source and
provides additional details about the receipt of the FlowFile, such as a
remote system's Distinguished Name.flowFile
- the FlowFile that was receivedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.sourceSystemFlowFileIdentifier
- the URI/identifier that the source
system uses to refer to the data; if this value is non-null and is not a
URI, the prefix "urn:tdo:" will be used to form a URI.details
- details about the receive event; for example, it may be
relevant to include the DN of the sending systemtransmissionMillis
- the number of milliseconds taken to transfer
the datavoid fetch(FlowFile flowFile, String transitUri)
FETCH
that indicates that the content of the given
FlowFile was overwritten with the data received from an external source.flowFile
- the FlowFile whose content was replacedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred.void fetch(FlowFile flowFile, String transitUri, long transmissionMillis)
FETCH
that indicates that the content of the given
FlowFile was overwritten with the data received from an external source.flowFile
- the FlowFile whose content was replacedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred.transmissionMillis
- the number of milliseconds taken to transfer the datavoid fetch(FlowFile flowFile, String transitUri, String details, long transmissionMillis)
FETCH
that indicates that the content of the given
FlowFile was overwritten with the data received from an external source.flowFile
- the FlowFile whose content was replacedtransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred.details
- details about the eventtransmissionMillis
- the number of milliseconds taken to transfer
the datavoid send(FlowFile flowFile, String transitUri)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.void send(FlowFile flowFile, String transitUri, String details)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.details
- additional details related to the SEND event, such as a
remote system's Distinguished Namevoid send(FlowFile flowFile, String transitUri, long transmissionMillis)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.transmissionMillis
- the number of milliseconds spent sending the
data to the remote systemvoid send(FlowFile flowFile, String transitUri, String details, long transmissionMillis)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.details
- additional details related to the SEND event, such as a
remote system's Distinguished NametransmissionMillis
- the number of milliseconds spent sending the
data to the remote systemvoid send(FlowFile flowFile, String transitUri, boolean force)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.force
- if true
, this event will be added to the
Provenance Repository immediately and will still be persisted if the
ProcessSession
to which this
ProvenanceReporter is associated is rolled back. Otherwise, the Event
will be recorded only on a successful session commit.void send(FlowFile flowFile, String transitUri, String details, boolean force)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.details
- additional details related to the SEND event, such as a
remote system's Distinguished Nameforce
- if true
, this event will be added to the
Provenance Repository immediately and will still be persisted if the
ProcessSession
to which this
ProvenanceReporter is associated is rolled back. Otherwise, the Event
will be recorded only on a successful session commit.void send(FlowFile flowFile, String transitUri, long transmissionMillis, boolean force)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.transmissionMillis
- the number of milliseconds spent sending the
data to the remote systemforce
- if true
, this event will be added to the
Provenance Repository immediately and will still be persisted if the
ProcessSession
to which this
ProvenanceReporter is associated is rolled back. Otherwise, the Event
will be recorded only on a successful session commit.void send(FlowFile flowFile, String transitUri, String details, long transmissionMillis, boolean force)
SEND
that indicates that a copy of the given FlowFile was sent to an external
destination. The external destination may be a remote system or may be a
local destination, such as the local file system but is external to NiFi.flowFile
- the FlowFile that was senttransitUri
- A URI that provides information about the System and
Protocol information over which the transfer occurred. The intent of this
field is such that both the sender and the receiver can publish the
events to an external Enterprise-wide system that is then able to
correlate the SEND and RECEIVE events.details
- additional details related to the SEND event, such as a
remote system's Distinguished NametransmissionMillis
- the number of milliseconds spent sending the
data to the remote systemforce
- if true
, this event will be added to the
Provenance Repository immediately and will still be persisted if the
ProcessSession
to which this
ProvenanceReporter is associated is rolled back. Otherwise, the Event
will be recorded only on a successful session commit.void invokeRemoteProcess(FlowFile flowFile, String transitUri)
ProvenanceEventType.REMOTE_INVOCATION
that indicates a remote invocation is requested to an external endpoint using
the given FlowFile. The external endpoint may exist in a remote or a local system,
but is external to NiFi.flowFile
- the FlowFile that was used to make the remote invocationtransitUri
- A URI that provides information about the System and
Protocol information over which the invocation occurred. The intent of this
field is to identify they type and target resource or object of the invocation.void invokeRemoteProcess(FlowFile flowFile, String transitUri, String details)
ProvenanceEventType.REMOTE_INVOCATION
that indicates a remote invocation is requested to an external endpoint using
the given FlowFile. The external endpoint may exist in a remote or a local system,
but is external to NiFi.flowFile
- the FlowFile that was used to make the remote invocationtransitUri
- A URI that provides information about the System and
Protocol information over which the invocation occurred. The intent of this
field is to identify they type and target resource or object of the invocation.details
- additional details related to the REMOTE_INVOCATION event, such as an
explanation of the invoked process.void associate(FlowFile flowFile, String alternateIdentifierNamespace, String alternateIdentifier)
ADDINFO
that provides a linkage
between the given FlowFile and alternate identifier. This information can
be useful if published to an external, enterprise-wide Provenance
tracking system that is able to associate the data between different
processes.flowFile
- the FlowFile for which the association should be madealternateIdentifierNamespace
- the namespace of the alternate systemalternateIdentifier
- the identifier that the alternate system uses
when referring to the data that is encompassed by this FlowFilevoid fork(FlowFile parent, Collection<FlowFile> children)
FORK
that establishes that the given parent was split into multiple child
FlowFiles. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parent
- the FlowFile from which the children are derivedchildren
- the FlowFiles that are derived from the parent.void fork(FlowFile parent, Collection<FlowFile> children, String details)
FORK
that establishes that the given parent was split into multiple child
FlowFiles. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parent
- the FlowFile from which the children are derivedchildren
- the FlowFiles that are derived from the parent.details
- any details pertinent to the forkvoid fork(FlowFile parent, Collection<FlowFile> children, long forkDuration)
FORK
that establishes that the given parent was split into multiple child
FlowFiles. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parent
- the FlowFile from which the children are derivedchildren
- the FlowFiles that are derived from the parent.forkDuration
- the number of milliseconds that it took to perform
the taskvoid fork(FlowFile parent, Collection<FlowFile> children, String details, long forkDuration)
FORK
that establishes that the given parent was split into multiple child
FlowFiles. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parent
- the FlowFile from which the children are derivedchildren
- the FlowFiles that are derived from the parent.details
- any details pertinent to the forkforkDuration
- the number of milliseconds that it took to perform
the taskvoid join(Collection<FlowFile> parents, FlowFile child)
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parents
- the FlowFiles that are being joined together to create the
childchild
- the FlowFile that is being created by joining the parentsvoid join(Collection<FlowFile> parents, FlowFile child, String details)
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parents
- the FlowFiles that are being joined together to create the
childchild
- the FlowFile that is being created by joining the parentsdetails
- any details pertinent to the eventvoid join(Collection<FlowFile> parents, FlowFile child, long joinDuration)
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parents
- the FlowFiles that are being joined together to create the
childchild
- the FlowFile that is being created by joining the parentsjoinDuration
- the number of milliseconds that it took to join the
FlowFilesvoid join(Collection<FlowFile> parents, FlowFile child, String details, long joinDuration)
JOIN
that establishes that the given parents were joined together to create a
new child FlowFile. In general, this method does not need to be called by
Processors, as the ProcessSession will handle this automatically for you
when calling ProcessSession.create(FlowFile)
.parents
- the FlowFiles that are being joined together to create the
childchild
- the FlowFile that is being created by joining the parentsdetails
- any details pertinent to the eventjoinDuration
- the number of milliseconds that it took to join the
FlowFilesvoid clone(FlowFile parent, FlowFile child)
CLONE
that establishes that the given child is an exact replica of the parent.
In general, this method does not need to be called by Processors, as the
ProcessSession
will handle this automatically for you when
calling ProcessSession.clone(FlowFile)
parent
- the FlowFile that was clonedchild
- the clonevoid modifyContent(FlowFile flowFile)
CONTENT_MODIFIED
that
indicates that the content of the given FlowFile has been modified. One
of the modifyContent
methods should be called any time that
the contents of a FlowFile are modified.flowFile
- the FlowFile whose content is being modifiedvoid modifyContent(FlowFile flowFile, String details)
CONTENT_MODIFIED
that
indicates that the content of the given FlowFile has been modified. One
of the modifyContent
methods should be called any time that
the contents of a FlowFile are modified.flowFile
- the FlowFile whose content is being modifieddetails
- Any details about how the content of the FlowFile has been
modified. Details should not be specified if they can be inferred by
other information in the event, such as the name of the Processor, as
specifying this information will add undue overheadvoid modifyContent(FlowFile flowFile, long processingMillis)
CONTENT_MODIFIED
that
indicates that the content of the given FlowFile has been modified. One
of the modifyContent
methods should be called any time that
the contents of a FlowFile are modified.flowFile
- the FlowFile whose content is being modifiedprocessingMillis
- the number of milliseconds spent processing the
FlowFilevoid modifyContent(FlowFile flowFile, String details, long processingMillis)
CONTENT_MODIFIED
that
indicates that the content of the given FlowFile has been modified. One
of the modifyContent
methods should be called any time that
the contents of a FlowFile are modified.flowFile
- the FlowFile whose content is being modifieddetails
- Any details about how the content of the FlowFile has been
modified. Details should not be specified if they can be inferred by
other information in the event, such as the name of the Processor, as
specifying this information will add undue overheadprocessingMillis
- the number of milliseconds spent processing the
FlowFilevoid modifyAttributes(FlowFile flowFile)
ATTRIBUTES_MODIFIED
that
indicates that the Attributes of the given FlowFile were updated. It is
not necessary to emit such an event for a FlowFile if other Events are
already emitted by a Processor. For example, one should call both
modifyContent(FlowFile)
and modifyAttributes(FlowFile)
for the same FlowFile in the same Processor. Rather, the Processor should
call just the modifyContent(FlowFile)
, as the call to
modifyContent(FlowFile)
will generate a Provenance Event that
already contains all FlowFile attributes. As such, emitting another event
that contains those attributes is unneeded and can result in a
significant amount of overhead for storage and processing.flowFile
- the FlowFile whose attributes were modifiedvoid modifyAttributes(FlowFile flowFile, String details)
ATTRIBUTES_MODIFIED
that
indicates that the Attributes of the given FlowFile were updated. It is
not necessary to emit such an event for a FlowFile if other Events are
already emitted by a Processor. For example, one should call both
modifyContent(FlowFile)
and modifyAttributes(FlowFile)
for the same FlowFile in the same Processor. Rather, the Processor should
call just the modifyContent(FlowFile)
, as the call to
modifyContent(FlowFile)
will generate a Provenance Event that
already contains all FlowFile attributes. As such, emitting another event
that contains those attributes is unneeded and can result in a
significant amount of overhead for storage and processing.flowFile
- the FlowFile whose attributes were modifieddetails
- any details should be provided about the attribute
modificationvoid route(FlowFile flowFile, Relationship relationship)
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship
. Note: this Event is intended for Processors
whose sole job it is to route FlowFiles and should NOT be used as a way
to indicate that the given FlowFile was routed to a standard 'success' or
'failure' relationship. Doing so can be problematic, as DataFlow Managers
often will loop 'failure' relationships back to the same processor. As
such, emitting a Route event to indicate that a FlowFile was routed to
'failure' can result in creating thousands of Provenance Events for a
given FlowFile, resulting in a very difficult-to- understand lineage.flowFile
- the FlowFile being routedrelationship
- the Relationship to which the FlowFile was routedvoid route(FlowFile flowFile, Relationship relationship, String details)
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship
. Note: this Event is intended ONLY for
Processors whose sole job it is to route FlowFiles and should NOT be used
as a way to indicate that hte given FlowFile was routed to a standard
'success' or 'failure' relationship. Doing so can be problematic, as
DataFlow Managers often will loop 'failure' relationships back to the
same processor. As such, emitting a Route event to indicate that a
FlowFile was routed to 'failure' can result in creating thousands of
Provenance Events for a given FlowFile, resulting in a very difficult-to-
understand lineage.flowFile
- the FlowFile being routedrelationship
- the Relationship to which the FlowFile was routeddetails
- any details pertinent to the Route event, such as why the
FlowFile was routed to the specified Relationshipvoid route(FlowFile flowFile, Relationship relationship, long processingDuration)
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship
. Note: this Event is intended ONLY for
Processors whose sole job it is to route FlowFiles and should NOT be used
as a way to indicate that hte given FlowFile was routed to a standard
'success' or 'failure' relationship. Doing so can be problematic, as
DataFlow Managers often will loop 'failure' relationships back to the
same processor. As such, emitting a Route event to indicate that a
FlowFile was routed to 'failure' can result in creating thousands of
Provenance Events for a given FlowFile, resulting in a very difficult-to-
understand lineage.flowFile
- the FlowFile being routedrelationship
- the Relationship to which the FlowFile was routedprocessingDuration
- the number of milliseconds that it took to
determine how to route the FlowFilevoid route(FlowFile flowFile, Relationship relationship, String details, long processingDuration)
ROUTE
that indicates that the given FlowFile was routed to the given
Relationship
. Note: this Event is intended ONLY for
Processors whose sole job it is to route FlowFiles and should NOT be used
as a way to indicate that hte given FlowFile was routed to a standard
'success' or 'failure' relationship. Doing so can be problematic, as
DataFlow Managers often will loop 'failure' relationships back to the
same processor. As such, emitting a Route event to indicate that a
FlowFile was routed to 'failure' can result in creating thousands of
Provenance Events for a given FlowFile, resulting in a very difficult-to-
understand lineage.flowFile
- the FlowFile being routedrelationship
- the Relationship to which the FlowFile was routeddetails
- any details pertinent to the Route event, such as why the
FlowFile was routed to the specified RelationshipprocessingDuration
- the number of milliseconds that it took to
determine how to route the FlowFilevoid create(FlowFile flowFile)
CREATE
that indicates that the given
FlowFile was created by NiFi from data that was not received from an
external entity. If the data was received from an external source, use
the receive(FlowFile, String)
event insteadflowFile
- the FlowFile that was createdvoid create(FlowFile flowFile, String details)
CREATE
that indicates that the given
FlowFile was created by NiFi from data that was not received from an
external entity. If the data was received from an external source, use
the receive(FlowFile, String, String, long)
event insteadflowFile
- the FlowFile that was createddetails
- any relevant details about the CREATE eventint getFlowFilesReceived()
long getBytesReceived()
int getFlowFilesFetched()
long getBytesFetched()
int getFlowFilesSent()
long getBytesSent()
Copyright © 2022 Apache NiFi Project. All rights reserved.