Skip to content

NIFI-16123 Add Connection Status reporting to Process Session#11441

Merged
pvillard31 merged 1 commit into
apache:mainfrom
exceptionfactory:NIFI-16123
Jul 20, 2026
Merged

NIFI-16123 Add Connection Status reporting to Process Session#11441
pvillard31 merged 1 commit into
apache:mainfrom
exceptionfactory:NIFI-16123

Conversation

@exceptionfactory

Copy link
Copy Markdown
Contributor

Summary

NIFI-16123 Updates the framework ComponentMetricReporter interface with new methods for recording ConnectionStatusEvents when the StandardProcessSession commits transactions.

The implementation of the ConnectionStatusEvent follows the interface definition and builder pattern of the ProcessSessionEvent currently implemented in ComponentMetricReporter.

The new methods on ComponentMetricReporter include an enabled status indicator, allowing the StandardProcessSession to avoid unnecessary operations when the ComponentMetricReporter implementation does not support recording Connection Status Events.

The Connection Status Event recording enables exporting queued FlowFile information without depending on the StatusHistoryRepository for persistence and subsequent reporting.

Tracking

Please complete the following tracking steps prior to pull request creation.

Issue Tracking

Pull Request Tracking

  • Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
  • Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000
  • Pull request contains commits signed with a registered key indicating Verified status

Pull Request Formatting

  • Pull Request based on current revision of the main branch
  • Pull Request refers to a feature branch with one commit containing changes

Verification

Please indicate the verification steps performed prior to pull request creation.

Build

  • Build completed using ./mvnw clean install -P contrib-check
    • JDK 21
    • JDK 25

Licensing

  • New dependencies are compatible with the Apache License 2.0 according to the License Policy
  • New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

  • Documentation formatting appears as expected in rendered files

- Added ConnectionStatusEvent interface to framework-api
- Updated StandardProcessSession with optional recording of Connection Status

@pvillard31 pvillard31 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes are looking straightforward, thanks @exceptionfactory

@pvillard31
pvillard31 merged commit 8372ecb into apache:main Jul 20, 2026
15 of 16 checks passed
// Check enabled status to avoid building objects and calling methods when not used
if (context.isRecordConnectionStatusEventEnabled()) {
for (final Connection connection : checkpoint.processedConnections.values()) {
final ComponentMetricContext connectionMetricContext = checkpoint.connectionMetricContexts.get(connection.getIdentifier());

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I feel like for connection events destination/source id & name could be useful metadata - connections are often nameless, so adding these to attributes in ComponentMetricContext at cacheConnectionMetricContext would provide a way to differentiate them easily. Wdyt?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the feedback @boguszj. I considered adding the source and destination information as well, I will take a look at this in a subsequent issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants