exceptionfactory commented on code in PR #11398:
URL: https://github.com/apache/nifi/pull/11398#discussion_r3533216776


##########
nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/repository/StandardProcessSession.java:
##########
@@ -1829,23 +1838,47 @@ private void formatNanos(final long nanos, final 
StringBuilder sb) {
     }
 
     private void incrementConnectionInputCounts(final Connection connection, 
final RepositoryRecord record) {
-        incrementConnectionInputCounts(connection.getIdentifier(), 1, 
record.getCurrent().getSize());
+        incrementConnectionInputCounts(connection, 1, 
record.getCurrent().getSize());
     }
 
-    private void incrementConnectionInputCounts(final String connectionId, 
final int flowFileCount, final long bytes) {
-        final StandardFlowFileEvent connectionEvent = 
connectionCounts.computeIfAbsent(connectionId, id -> new 
StandardFlowFileEvent());
-        connectionEvent.setContentSizeIn(connectionEvent.getContentSizeIn() + 
bytes);
-        connectionEvent.setFlowFilesIn(connectionEvent.getFlowFilesIn() + 
flowFileCount);
+    private void incrementConnectionInputCounts(final Connection connection, 
final int flowFileCount, final long bytes) {
+        final String connectionId = connection.getIdentifier();
+        cacheConnectionMetricContext(connection);
+        final ProcessSessionEventBuilder connectionEvent = 
connectionCounts.computeIfAbsent(
+                connectionId, id -> 
ProcessSessionEventBuilder.forComponent(getConnectionMetricContext(connectionId)));
+        connectionEvent.addFlowFilesIn(flowFileCount).addContentSizeIn(bytes);
     }
 
     private void incrementConnectionOutputCounts(final Connection connection, 
final FlowFileRecord record) {
-        incrementConnectionOutputCounts(connection.getIdentifier(), 1, 
record.getSize());
+        incrementConnectionOutputCounts(connection, 1, record.getSize());
+    }
+
+    private void incrementConnectionOutputCounts(final Connection connection, 
final int flowFileCount, final long bytes) {
+        final String connectionId = connection.getIdentifier();
+        cacheConnectionMetricContext(connection);
+        final ProcessSessionEventBuilder connectionEvent = 
connectionCounts.computeIfAbsent(
+                connectionId, id -> 
ProcessSessionEventBuilder.forComponent(getConnectionMetricContext(connectionId)));
+        
connectionEvent.addFlowFilesOut(flowFileCount).addContentSizeOut(bytes);
     }
 
     private void incrementConnectionOutputCounts(final String connectionId, 
final int flowFileCount, final long bytes) {
-        final StandardFlowFileEvent connectionEvent = 
connectionCounts.computeIfAbsent(connectionId, id -> new 
StandardFlowFileEvent());
-        connectionEvent.setContentSizeOut(connectionEvent.getContentSizeOut() 
+ bytes);
-        connectionEvent.setFlowFilesOut(connectionEvent.getFlowFilesOut() + 
flowFileCount);
+        final ProcessSessionEventBuilder connectionEvent = 
connectionCounts.computeIfAbsent(
+                connectionId, id -> 
ProcessSessionEventBuilder.forComponent(getConnectionMetricContext(connectionId)));

Review Comment:
   Yes, since the previous behavior did not include the `name` or `attributes`, 
the Connection MetricContext with reused `id` appears to be the best option, 
unless there is another clear way to get the needed `Connection` object for the 
new owner.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to