This is an automated email from the ASF dual-hosted git repository.

exceptionfactory pushed a commit to branch support/nifi-1.x
in repository https://gitbox.apache.org/repos/asf/nifi.git


The following commit(s) were added to refs/heads/support/nifi-1.x by this push:
     new 104af930d7 NIFI-11899 Correct Bulletin Metrics Registry to return 
latest Bulletins
104af930d7 is described below

commit 104af930d7548cbd5e059be81aa6ac222f99c59c
Author: Yolanda M. Davis <[email protected]>
AuthorDate: Wed Aug 2 20:33:18 2023 -0400

    NIFI-11899 Correct Bulletin Metrics Registry to return latest Bulletins
    
    This closes #7567
    
    Signed-off-by: David Handermann <[email protected]>
    (cherry picked from commit f8e3b9ebacb4d927ac6a4f9a3fee0eaaf2d9fd36)
---
 .../apache/nifi/web/StandardNiFiServiceFacade.java | 44 +++++++++++-----------
 1 file changed, 21 insertions(+), 23 deletions(-)

diff --git 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
index 75f5aca5df..4e7f47688d 100644
--- 
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
+++ 
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java
@@ -437,29 +437,10 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
     private AuthorizableLookup authorizableLookup;
 
     // Prometheus Metrics objects
-    private final NiFiMetricsRegistry nifiMetricsRegistry = new 
NiFiMetricsRegistry();
     private final JvmMetricsRegistry jvmMetricsRegistry = new 
JvmMetricsRegistry();
     private final ConnectionAnalyticsMetricsRegistry 
connectionAnalyticsMetricsRegistry = new ConnectionAnalyticsMetricsRegistry();
-    private final BulletinMetricsRegistry bulletinMetricsRegistry = new 
BulletinMetricsRegistry();
     private final ClusterMetricsRegistry clusterMetricsRegistry = new 
ClusterMetricsRegistry();
 
-    private final Collection<AbstractMetricsRegistry> configuredRegistries = 
Arrays.asList(
-            nifiMetricsRegistry,
-            jvmMetricsRegistry,
-            connectionAnalyticsMetricsRegistry,
-            bulletinMetricsRegistry,
-            clusterMetricsRegistry
-    );
-
-    private final Collection<CollectorRegistry> metricsRegistries = 
Arrays.asList(
-            nifiMetricsRegistry.getRegistry(),
-            jvmMetricsRegistry.getRegistry(),
-            connectionAnalyticsMetricsRegistry.getRegistry(),
-            bulletinMetricsRegistry.getRegistry(),
-            clusterMetricsRegistry.getRegistry()
-    );
-
-
     // -----------------------------------------
     // Synchronization methods
     // -----------------------------------------
@@ -6040,12 +6021,14 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
         return entityFactory.createProcessorDiagnosticsEntity(dto, 
revisionDto, permissionsDto, processorStatusDto, bulletins);
     }
 
-    @Override
-    public Collection<CollectorRegistry> generateFlowMetrics() {
+    protected Collection<AbstractMetricsRegistry> populateFlowMetrics() {
+        // Include registries which are fully refreshed upon each invocation
+        NiFiMetricsRegistry nifiMetricsRegistry = new NiFiMetricsRegistry();
+        BulletinMetricsRegistry bulletinMetricsRegistry = new 
BulletinMetricsRegistry();
+
         final String instanceId = 
StringUtils.isEmpty(controllerFacade.getInstanceId()) ? "" : 
controllerFacade.getInstanceId();
         ProcessGroupStatus rootPGStatus = 
controllerFacade.getProcessGroupStatus("root");
 
-        nifiMetricsRegistry.clear();
         PrometheusMetricsUtil.createNifiMetrics(nifiMetricsRegistry, 
rootPGStatus, instanceId, "", ROOT_PROCESS_GROUP,
                 PrometheusMetricsUtil.METRICS_STRATEGY_COMPONENTS.getValue());
 
@@ -6144,10 +6127,24 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
         final boolean isClustered = clusterCoordinator != null;
         final boolean isConnectedToCluster = isClustered() && 
clusterCoordinator.isConnected();
         PrometheusMetricsUtil.createClusterMetrics(clusterMetricsRegistry, 
instanceId, isClustered, isConnectedToCluster, connectedNodesLabel, 
connectedNodeCount, totalNodeCount);
+        Collection<AbstractMetricsRegistry> metricsRegistries = Arrays.asList(
+                nifiMetricsRegistry,
+                jvmMetricsRegistry,
+                connectionAnalyticsMetricsRegistry,
+                bulletinMetricsRegistry,
+                clusterMetricsRegistry
+        );
 
         return metricsRegistries;
     }
 
+    @Override
+    public Collection<CollectorRegistry> generateFlowMetrics() {
+
+        return 
populateFlowMetrics().stream().map(AbstractMetricsRegistry::getRegistry)
+                                             .collect(Collectors.toList());
+    }
+
     @Override
     public Collection<CollectorRegistry> generateFlowMetrics(final 
Set<FlowMetricsRegistry> includeRegistries) {
         final Set<FlowMetricsRegistry> selectedRegistries = 
includeRegistries.isEmpty() ? new 
HashSet<>(Arrays.asList(FlowMetricsRegistry.values())) : includeRegistries;
@@ -6156,7 +6153,8 @@ public class StandardNiFiServiceFacade implements 
NiFiServiceFacade {
                 .map(FlowMetricsRegistry::getRegistryClass)
                 .collect(Collectors.toSet());
 
-        generateFlowMetrics();
+        Collection<AbstractMetricsRegistry> configuredRegistries = 
populateFlowMetrics();
+
         return configuredRegistries.stream()
                 .filter(configuredRegistry -> 
registryClasses.contains(configuredRegistry.getClass()))
                 .map(AbstractMetricsRegistry::getRegistry)

Reply via email to