abij opened a new pull request, #11623:
URL: https://github.com/apache/nifi/pull/11623

   ### Summary
   
   The Prometheus flow metrics endpoint (`/nifi-api/flow/metrics/prometheus`) 
exposes `cluster_connected_node_count` with a `connected_nodes` label 
containing a human-readable ratio string, e.g. `connected_nodes="3 / 4"`. 
Because `ClusterMetricsRegistry` is a long-lived singleton on 
`StandardNiFiServiceFacade` that is never cleared, and this label's value 
changes every time cluster membership changes, every distinct ratio the cluster 
has ever reported over the process's lifetime remains permanently exposed as a 
separate, frozen time series alongside the current one — e.g. a fully-connected 
4-node cluster can still show a stale `connected_nodes="3 / 4"` series from an 
earlier transient disconnect, in addition to the correct `connected_nodes="4 / 
4"` series. This makes the metric unreliable for dashboards/alerts without 
manually filtering out label combinations that can't be distinguished from 
current ones.
   
   This is the same class of bug fixed twice before in this file for other 
registries (NIFI-8272, NIFI-11899), both times by no longer using a 
churning/derived value as a metric label.
   
   ### What this PR does
   
   Removes `connected_nodes` from the gauge's label set entirely, since it's 
purely a cosmetic rendering of `connectedNodeCount`/`totalNodeCount`, both of 
which are already exposed numerically (`cluster_connected_node_count`'s own 
value, and the separate `cluster_total_node_count` gauge). This brings 
`CONNECTED_NODE_COUNT` in line with its sibling gauges in the same registry 
(`cluster_is_clustered`, `cluster_is_connected_to_cluster`, 
`cluster_total_node_count`), none of which carry a churning label.
   
   - `ClusterMetricsRegistry`: `.labelNames("instance", "connected_nodes")` → 
`.labelNames("instance")`
   - `PrometheusMetricsUtil#createClusterMetrics`: drop the now-unused 
`connectedNodes` parameter
   - `StandardNiFiServiceFacade#populateFlowMetrics`: drop the now-unused 
`connectedNodesLabel` string assembly
   - `TestFlowResource`: update the corresponding test fixture call
   
   No information is lost — clients relying on the ratio can compute it from 
the two existing numeric gauges instead. This is technically a breaking change 
to the metric's label surface for anyone rendering the `connected_nodes` label 
text directly (e.g. a Grafana table column), documented here for visibility.
   
   ### Tests
   
   - `./mvnw -pl nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api -am 
install` — build succeeds
   - `./mvnw -pl nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api 
test -Dtest=TestFlowResource` — 22/22 tests pass


-- 
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