You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by jo...@apache.org on 2020/01/15 13:28:07 UTC
[nifi] branch master updated: NIFI-7017: This closes #3988. Fixed
PrometheusReportingTask for nested PG status
This is an automated email from the ASF dual-hosted git repository.
joewitt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/master by this push:
new bb699e7 NIFI-7017: This closes #3988. Fixed PrometheusReportingTask for nested PG status
bb699e7 is described below
commit bb699e749755432837b3a4132372f635d7480be3
Author: Matthew Burgess <ma...@apache.org>
AuthorDate: Tue Jan 14 13:17:34 2020 -0500
NIFI-7017: This closes #3988. Fixed PrometheusReportingTask for nested PG status
Signed-off-by: Joe Witt <jo...@apache.org>
---
.../prometheus/api/PrometheusMetricsUtil.java | 20 +++++++++--------
.../prometheus/TestPrometheusReportingTask.java | 26 ++++++++++++++++++++++
2 files changed, 37 insertions(+), 9 deletions(-)
diff --git a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/main/java/org/apache/nifi/reporting/prometheus/api/PrometheusMetricsUtil.java b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/main/java/org/apache/nifi/reporting/prometheus/api/PrometheusMetricsUtil.java
index 91a54a0..33222c7 100644
--- a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/main/java/org/apache/nifi/reporting/prometheus/api/PrometheusMetricsUtil.java
+++ b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/main/java/org/apache/nifi/reporting/prometheus/api/PrometheusMetricsUtil.java
@@ -329,16 +329,18 @@ public class PrometheusMetricsUtil {
final String componentId = status.getId();
final String componentName = status.getName();
- // Clear all collectors to deal with removed/renamed components
- try {
- for (final Field field : PrometheusMetricsUtil.class.getDeclaredFields()) {
- if (Modifier.isStatic(field.getModifiers()) && (field.get(null) instanceof SimpleCollector)) {
- SimpleCollector sc = (SimpleCollector)(field.get(null));
- sc.clear();
+ // Clear all collectors to deal with removed/renamed components -- for root PG only
+ if("RootProcessGroup".equals(componentType)) {
+ try {
+ for (final Field field : PrometheusMetricsUtil.class.getDeclaredFields()) {
+ if (Modifier.isStatic(field.getModifiers()) && (field.get(null) instanceof SimpleCollector)) {
+ SimpleCollector<?> sc = (SimpleCollector<?>) (field.get(null));
+ sc.clear();
+ }
}
+ } catch (IllegalAccessException e) {
+ // ignore
}
- } catch (IllegalAccessException e) {
- // ignore
}
AMOUNT_FLOWFILES_SENT.labels(instanceId, componentType, componentName, componentId, parentPGId).set(status.getFlowFilesSent());
@@ -372,7 +374,7 @@ public class PrometheusMetricsUtil {
// Report metrics for child process groups if specified
if (METRICS_STRATEGY_PG.getValue().equals(metricsStrategy) || METRICS_STRATEGY_COMPONENTS.getValue().equals(metricsStrategy)) {
- status.getProcessGroupStatus().forEach((childGroupStatus) -> createNifiMetrics(childGroupStatus, instanceId, parentPGId, "ProcessGroup", metricsStrategy));
+ status.getProcessGroupStatus().forEach((childGroupStatus) -> createNifiMetrics(childGroupStatus, instanceId, componentId, "ProcessGroup", metricsStrategy));
}
if (METRICS_STRATEGY_COMPONENTS.getValue().equals(metricsStrategy)) {
diff --git a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusReportingTask.java b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusReportingTask.java
index b39d757..0943e0b 100644
--- a/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusReportingTask.java
+++ b/nifi-nar-bundles/nifi-prometheus-bundle/nifi-prometheus-reporting-task/src/test/java/org/apache/nifi/reporting/prometheus/TestPrometheusReportingTask.java
@@ -19,6 +19,8 @@ package org.apache.nifi.reporting.prometheus;
import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import org.apache.http.HttpEntity;
@@ -93,6 +95,28 @@ public class TestPrometheusReportingTask {
outputPortStatus.setActiveThreadCount(1);
rootGroupStatus.setOutputPortStatus(Collections.singletonList(outputPortStatus));
+ // Create a nested group status
+ ProcessGroupStatus groupStatus2 = new ProcessGroupStatus();
+ groupStatus2.setFlowFilesReceived(5);
+ groupStatus2.setBytesReceived(10000);
+ groupStatus2.setFlowFilesSent(10);
+ groupStatus2.setBytesSent(20000);
+ groupStatus2.setQueuedCount(100);
+ groupStatus2.setQueuedContentSize(1024L);
+ groupStatus2.setActiveThreadCount(2);
+ groupStatus2.setBytesRead(12345L);
+ groupStatus2.setBytesWritten(11111L);
+ groupStatus2.setFlowFilesTransferred(5);
+ groupStatus2.setBytesTransferred(10000);
+ groupStatus2.setOutputContentSize(1000L);
+ groupStatus2.setInputContentSize(1000L);
+ groupStatus2.setOutputCount(100);
+ groupStatus2.setInputCount(1000);
+ groupStatus2.setId("3378");
+ groupStatus2.setName("nestedPG");
+ Collection<ProcessGroupStatus> nestedGroupStatuses = new ArrayList<>();
+ nestedGroupStatuses.add(groupStatus2);
+ rootGroupStatus.setProcessGroupStatus(nestedGroupStatuses);
}
@Test
@@ -107,6 +131,8 @@ public class TestPrometheusReportingTask {
"nifi_amount_flowfiles_received{instance=\"localhost\",component_type=\"RootProcessGroup\",component_name=\"root\",component_id=\"1234\",parent_id=\"\",} 5.0"));
Assert.assertTrue(content.contains(
"nifi_amount_threads_active{instance=\"localhost\",component_type=\"RootProcessGroup\",component_name=\"root\",component_id=\"1234\",parent_id=\"\",} 5.0"));
+ Assert.assertTrue(content.contains(
+ "nifi_amount_threads_active{instance=\"localhost\",component_type=\"ProcessGroup\",component_name=\"nestedPG\",component_id=\"3378\",parent_id=\"1234\",} 2.0"));
// Rename the component
rootGroupStatus.setName("rootroot");