This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new b56b1da842 NIFI-11180 Removed Ambari Reporting Task
b56b1da842 is described below
commit b56b1da842bbe6399064b2fda60829066c3cd0d4
Author: Pierre Villard <[email protected]>
AuthorDate: Tue Feb 14 15:44:28 2023 -0500
NIFI-11180 Removed Ambari Reporting Task
- Updated TestRuntimeManifest to reference Prometheus Reporting Task
This closes #6952
Signed-off-by: David Handermann <[email protected]>
---
nifi-assembly/pom.xml | 6 -
.../nifi/runtime/manifest/TestRuntimeManifest.java | 30 ++--
.../nifi-ambari-bundle/nifi-ambari-nar/pom.xml | 36 ----
.../src/main/resources/META-INF/NOTICE | 51 ------
.../nifi-ambari-reporting-task/pom.xml | 64 --------
.../nifi/reporting/ambari/AmbariReportingTask.java | 181 ---------------------
.../org.apache.nifi.reporting.ReportingTask | 15 --
.../additionalDetails.html | 57 -------
.../reporting/ambari/TestAmbariReportingTask.java | 142 ----------------
.../reporting/ambari/api/TestMetricsBuilder.java | 78 ---------
.../ambari/metrics/TestMetricsService.java | 139 ----------------
nifi-nar-bundles/nifi-ambari-bundle/pom.xml | 31 ----
nifi-nar-bundles/pom.xml | 1 -
13 files changed, 16 insertions(+), 815 deletions(-)
diff --git a/nifi-assembly/pom.xml b/nifi-assembly/pom.xml
index c0edbf2e00..e4f16e93d2 100644
--- a/nifi-assembly/pom.xml
+++ b/nifi-assembly/pom.xml
@@ -444,12 +444,6 @@ language governing permissions and limitations under the
License. -->
<version>2.0.0-SNAPSHOT</version>
<type>nar</type>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ambari-nar</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-rethinkdb-nar</artifactId>
diff --git
a/nifi-manifest/nifi-runtime-manifest-test/src/test/java/org/apache/nifi/runtime/manifest/TestRuntimeManifest.java
b/nifi-manifest/nifi-runtime-manifest-test/src/test/java/org/apache/nifi/runtime/manifest/TestRuntimeManifest.java
index 633d776637..d1ccd7a929 100644
---
a/nifi-manifest/nifi-runtime-manifest-test/src/test/java/org/apache/nifi/runtime/manifest/TestRuntimeManifest.java
+++
b/nifi-manifest/nifi-runtime-manifest-test/src/test/java/org/apache/nifi/runtime/manifest/TestRuntimeManifest.java
@@ -54,6 +54,8 @@ class TestRuntimeManifest {
public static final String LIST_HDFS_DEFAULT_SCHEDULE_TIME = "1 min";
+ private static final String REPORTING_TASK_DEFAULT_SCHEDULE_TIME = "60
sec";
+
@Test
void testRuntimeManifest() throws IOException {
final ObjectMapper objectMapper = new ObjectMapper();
@@ -199,24 +201,24 @@ class TestRuntimeManifest {
assertEquals(1,
propertyMaxUncommitDependency.getDependentValues().size());
assertEquals("true",
propertyMaxUncommitDependency.getDependentValues().get(0));
- // Verify AmbariReportingTask definition which also has
@DefaultSchedule
- final ReportingTaskDefinition ambariReportingTaskDef =
getReportingTaskDefinition(bundles, "nifi-ambari-nar",
- "org.apache.nifi.reporting.ambari.AmbariReportingTask");
+ // Verify PrometheusReportingTask definition which also has
@DefaultSchedule
+ final ReportingTaskDefinition prometheusReportingTaskDef =
getReportingTaskDefinition(bundles, "nifi-prometheus-nar",
+
"org.apache.nifi.reporting.prometheus.PrometheusReportingTask");
- assertEquals(SchedulingStrategy.TIMER_DRIVEN.name(),
ambariReportingTaskDef.getDefaultSchedulingStrategy());
+ assertEquals(SchedulingStrategy.TIMER_DRIVEN.name(),
prometheusReportingTaskDef.getDefaultSchedulingStrategy());
- final List<String> ambariSchedulingStrategies =
ambariReportingTaskDef.getSupportedSchedulingStrategies();
- assertNotNull(ambariSchedulingStrategies);
- assertEquals(2, ambariSchedulingStrategies.size());
-
assertTrue(ambariSchedulingStrategies.contains(SchedulingStrategy.TIMER_DRIVEN.name()));
-
assertTrue(ambariSchedulingStrategies.contains(SchedulingStrategy.CRON_DRIVEN.name()));
+ final List<String> prometheusSchedulingStrategies =
prometheusReportingTaskDef.getSupportedSchedulingStrategies();
+ assertNotNull(prometheusSchedulingStrategies);
+ assertEquals(2, prometheusSchedulingStrategies.size());
+
assertTrue(prometheusSchedulingStrategies.contains(SchedulingStrategy.TIMER_DRIVEN.name()));
+
assertTrue(prometheusSchedulingStrategies.contains(SchedulingStrategy.CRON_DRIVEN.name()));
- final Map<String, String> ambariDefaultSchedulingPeriods =
ambariReportingTaskDef.getDefaultSchedulingPeriodBySchedulingStrategy();
- assertNotNull(ambariDefaultSchedulingPeriods);
- assertEquals(2, ambariDefaultSchedulingPeriods.size());
+ final Map<String, String> prometheusDefaultSchedulingPeriods =
prometheusReportingTaskDef.getDefaultSchedulingPeriodBySchedulingStrategy();
+ assertNotNull(prometheusDefaultSchedulingPeriods);
+ assertEquals(2, prometheusDefaultSchedulingPeriods.size());
// TIMER_DRIVEN period should come from the @DefaultSchedule
annotation that overrides the default value
- assertEquals(LIST_HDFS_DEFAULT_SCHEDULE_TIME,
ambariDefaultSchedulingPeriods.get(SchedulingStrategy.TIMER_DRIVEN.name()));
-
assertEquals(SchedulingStrategy.CRON_DRIVEN.getDefaultSchedulingPeriod(),
ambariDefaultSchedulingPeriods.get(SchedulingStrategy.CRON_DRIVEN.name()));
+ assertEquals(REPORTING_TASK_DEFAULT_SCHEDULE_TIME,
prometheusDefaultSchedulingPeriods.get(SchedulingStrategy.TIMER_DRIVEN.name()));
+
assertEquals(SchedulingStrategy.CRON_DRIVEN.getDefaultSchedulingPeriod(),
prometheusDefaultSchedulingPeriods.get(SchedulingStrategy.CRON_DRIVEN.name()));
// Verify JoltTransformRecord which has @EventDriven
final ProcessorDefinition joltTransformDef =
getProcessorDefinition(bundles, "nifi-jolt-record-nar",
diff --git a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/pom.xml
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/pom.xml
deleted file mode 100644
index 2e10385040..0000000000
--- a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ambari-bundle</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>nifi-ambari-nar</artifactId>
- <packaging>nar</packaging>
- <properties>
- <maven.javadoc.skip>true</maven.javadoc.skip>
- <source.skip>true</source.skip>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ambari-reporting-task</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- </dependencies>
-</project>
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/src/main/resources/META-INF/NOTICE
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 186452cd9f..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-nar/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,51 +0,0 @@
-nifi-ambari-nar
-Copyright 2015-2020 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-******************
-Apache Software License v2
-******************
-
-The following binary components are provided under the Apache Software License
v2
-
- (ASLv2) Dropwizard Metrics
- The following NOTICE information applies:
- Metrics
- Copyright 2010-2013 Coda Hale and Yammer, Inc., 2014-2017 Dropwizard Team
- This product includes software developed by Coda Hale and Yammer, Inc.
-
- This product includes code derived from the JSR-166 project
(ThreadLocalRandom, Striped64,
- LongAdder), which was released with the following comments:
-
- Written by Doug Lea with assistance from members of JCP JSR-166
- Expert Group and released to the public domain, as explained at
- http://creativecommons.org/publicdomain/zero/1.0/
-
- The derived work in the nifi-metrics module is adapted from
-
https://github.com/dropwizard/metrics/blob/v2.2.0/metrics-core/src/main/java/com/yammer/metrics/core/VirtualMachineMetrics.java
- and can be found in
-
nifi-commons/nifi-metrics/src/main/java/org/apache/nifi/metrics/jvm/JvmMetrics.java
-
nifi-commons/nifi-metrics/src/main/java/org/apache/nifi/metrics/jvm/JmxJvmMetrics.java
-
-************************
-Common Development and Distribution License 1.1
-************************
-
-The following binary components are provided under the Common Development and
Distribution License 1.1. See project link for details.
-
- (CDDL 1.1) (GPL2 w/ CPE) JSON Processing API
(javax.json:javax.json-api:jar:1.0 - http://json-processing-spec.java.net)
- (CDDL 1.1) (GPL2 w/ CPE) JSON Processing Default Provider
(org.glassfish:javax.json:jar:1.0.4 - https://jsonp.java.net)
- (CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle
(org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 -
http://glassfish.org/osgi-resource-locator)
- (CDDL 1.1) (GPL2 w/ CPE) javax.annotation API
(javax.annotation:javax.annotation-api:jar:1.2 -
http://jcp.org/en/jsr/detail?id=250)
- (CDDL 1.1) (GPL2 w/ CPE) HK2 API module
(org.glassfish.hk2:hk2-api:jar:2.4.0-b25 - https://hk2.java.net/hk2-api)
- (CDDL 1.1) (GPL2 w/ CPE) ServiceLocator Default Implementation
(org.glassfish.hk2:hk2-locator:jar:2.4.0-b25 - https://hk2.java.net/hk2-locator)
- (CDDL 1.1) (GPL2 w/ CPE) HK2 Implementation Utilities
(org.glassfish.hk2:hk2-utils:jar:2.4.0-b25 - https://hk2.java.net/hk2-utils)
- (CDDL 1.1) (GPL2 w/ CPE) aopalliance version 1.0 repackaged as a module
(org.glassfish.hk2.external:aopalliance-repackaged:jar:2.4.0-b25 -
https://hk2.java.net/external/aopalliance-repackaged)
- (CDDL 1.1) (GPL2 w/ CPE) javax.inject:1 as OSGi bundle
(org.glassfish.hk2.external:javax.inject:jar:2.4.0-b25 -
https://hk2.java.net/external/javax.inject)
- (CDDL 1.1) (GPL2 w/ CPE) javax.ws.rs-api
(javax.ws.rs:javax.ws.rs-api:jar:2.0.1 - http://jax-rs-spec.java.net)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-guava
(org.glassfish.jersey.bundles.repackaged:jersey-guava:bundle:2.19 -
https://jersey.java.net/project/project/jersey-guava/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-core-client
(org.glassfish.jersey.core:jersey-client:jar:2.19 -
https://jersey.java.net/jersey-client/)
- (CDDL 1.1) (GPL2 w/ CPE) jersey-core-common
(org.glassfish.jersey.core:jersey-common:jar:2.19 -
https://jersey.java.net/jersey-common/)
-
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/pom.xml
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/pom.xml
deleted file mode 100644
index 267043e31c..0000000000
--- a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-ambari-bundle</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>nifi-ambari-reporting-task</artifactId>
- <description>Publishes NiFi metrics to Ambari</description>
-
- <dependencies>
- <dependency>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-client</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.json</groupId>
- <artifactId>javax.json-api</artifactId>
- <version>1.1.4</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-utils</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-reporting-utils</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-metrics</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- <!-- test dependencies -->
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-mock</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-</project>
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/java/org/apache/nifi/reporting/ambari/AmbariReportingTask.java
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/java/org/apache/nifi/reporting/ambari/AmbariReportingTask.java
deleted file mode 100644
index 886e8913b3..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/java/org/apache/nifi/reporting/ambari/AmbariReportingTask.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.reporting.ambari;
-
-import org.apache.nifi.annotation.configuration.DefaultSchedule;
-import org.apache.nifi.annotation.documentation.CapabilityDescription;
-import org.apache.nifi.annotation.documentation.Tags;
-import org.apache.nifi.annotation.lifecycle.OnScheduled;
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.expression.ExpressionLanguageScope;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.metrics.jvm.JvmMetrics;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.reporting.AbstractReportingTask;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.util.metrics.MetricsService;
-import org.apache.nifi.reporting.util.metrics.api.MetricsBuilder;
-import org.apache.nifi.scheduling.SchedulingStrategy;
-
-import javax.json.Json;
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-@Tags({"reporting", "ambari", "metrics"})
-@CapabilityDescription("Publishes metrics from NiFi to Ambari Metrics Service
(AMS). Due to how the Ambari Metrics Service " +
- "works, this reporting task should be scheduled to run every 60
seconds. Each iteration it will send the metrics " +
- "from the previous iteration, and calculate the current metrics to be
sent on next iteration. Scheduling this reporting " +
- "task at a frequency other than 60 seconds may produce unexpected
results.")
-@DefaultSchedule(strategy = SchedulingStrategy.TIMER_DRIVEN, period = "1 min")
-public class AmbariReportingTask extends AbstractReportingTask {
-
- static final PropertyDescriptor METRICS_COLLECTOR_URL = new
PropertyDescriptor.Builder()
- .name("Metrics Collector URL")
- .description("The URL of the Ambari Metrics Collector Service")
- .required(true)
-
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
- .defaultValue("http://localhost:6188/ws/v1/timeline/metrics")
- .addValidator(StandardValidators.URL_VALIDATOR)
- .build();
-
- static final PropertyDescriptor APPLICATION_ID = new
PropertyDescriptor.Builder()
- .name("Application ID")
- .description("The Application ID to be included in the metrics
sent to Ambari")
- .required(true)
-
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
- .defaultValue("nifi")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder()
- .name("Hostname")
- .description("The Hostname of this NiFi instance to be included in
the metrics sent to Ambari")
- .required(true)
-
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
- .defaultValue("${hostname(true)}")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- static final PropertyDescriptor PROCESS_GROUP_ID = new
PropertyDescriptor.Builder()
- .name("Process Group ID")
- .description("If specified, the reporting task will send metrics
about this process group only. If"
- + " not, the root process group is used and global metrics
are sent.")
- .required(false)
-
.expressionLanguageSupported(ExpressionLanguageScope.VARIABLE_REGISTRY)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- private volatile Client client;
- private volatile JsonBuilderFactory factory;
- private volatile JvmMetrics virtualMachineMetrics;
- private volatile JsonObject previousMetrics = null;
-
- private final MetricsService metricsService = new MetricsService();
-
- @Override
- protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
- final List<PropertyDescriptor> properties = new ArrayList<>();
- properties.add(METRICS_COLLECTOR_URL);
- properties.add(APPLICATION_ID);
- properties.add(HOSTNAME);
- properties.add(PROCESS_GROUP_ID);
- return properties;
- }
-
- @OnScheduled
- public void setup(final ConfigurationContext context) throws IOException {
- final Map<String, ?> config = Collections.emptyMap();
- factory = Json.createBuilderFactory(config);
- client = createClient();
- virtualMachineMetrics = JmxJvmMetrics.getInstance();
- previousMetrics = null;
- }
-
- // used for testing to allow tests to override the client
- protected Client createClient() {
- return ClientBuilder.newClient();
- }
-
- @Override
- public void onTrigger(final ReportingContext context) {
- final String metricsCollectorUrl =
context.getProperty(METRICS_COLLECTOR_URL).evaluateAttributeExpressions().getValue();
- final String applicationId =
context.getProperty(APPLICATION_ID).evaluateAttributeExpressions().getValue();
- final String hostname =
context.getProperty(HOSTNAME).evaluateAttributeExpressions().getValue();
-
- final boolean pgIdIsSet =
context.getProperty(PROCESS_GROUP_ID).isSet();
- final String processGroupId = pgIdIsSet ?
context.getProperty(PROCESS_GROUP_ID).evaluateAttributeExpressions().getValue()
: null;
-
- final long start = System.currentTimeMillis();
-
- // send the metrics from last execution
- if (previousMetrics != null) {
- final WebTarget metricsTarget = client.target(metricsCollectorUrl);
- final Invocation.Builder invocation = metricsTarget.request();
-
- final Entity<String> entity =
Entity.json(previousMetrics.toString());
- getLogger().debug("Sending metrics {} to Ambari", new
Object[]{entity.getEntity()});
-
- final Response response = invocation.post(entity);
- if (response.getStatus() == Response.Status.OK.getStatusCode()) {
- final long completedMillis =
TimeUnit.NANOSECONDS.toMillis(System.currentTimeMillis() - start);
- getLogger().info("Successfully sent metrics to Ambari in {}
ms", new Object[]{completedMillis});
- } else {
- final String responseEntity = response.hasEntity() ?
response.readEntity(String.class) : "unknown error";
- getLogger().error("Error sending metrics to Ambari due to {} -
{}", new Object[]{response.getStatus(), responseEntity});
- }
- }
-
- // calculate the current metrics, but store them to be sent next time
- final ProcessGroupStatus status = processGroupId == null ?
context.getEventAccess().getControllerStatus() :
context.getEventAccess().getGroupStatus(processGroupId);
-
- if(status != null) {
- final Map<String,String> statusMetrics =
metricsService.getMetrics(status, pgIdIsSet);
- final Map<String,String> jvmMetrics =
metricsService.getMetrics(virtualMachineMetrics);
-
- final MetricsBuilder metricsBuilder = new MetricsBuilder(factory);
-
- final JsonObject metricsObject = metricsBuilder
- .applicationId(applicationId)
- .instanceId(status.getId())
- .hostname(hostname)
- .timestamp(start)
- .addAllMetrics(statusMetrics)
- .addAllMetrics(jvmMetrics)
- .build();
-
- previousMetrics = metricsObject;
- } else {
- getLogger().error("No process group status with ID = {}", new
Object[]{processGroupId});
- previousMetrics = null;
- }
- }
-
-}
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
deleted file mode 100644
index 274710acdd..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
+++ /dev/null
@@ -1,15 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-org.apache.nifi.reporting.ambari.AmbariReportingTask
\ No newline at end of file
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.ambari.AmbariReportingTask/additionalDetails.html
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.ambari.AmbariReportingTask/additionalDetails.html
deleted file mode 100644
index 49409cf7e8..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.ambari.AmbariReportingTask/additionalDetails.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
- <head>
- <meta charset="utf-8" />
- <title>AmbariReportingTask</title>
- <link rel="stylesheet" href="../../../../../css/component-usage.css"
type="text/css" />
- </head>
-
- <body>
- <h2>AmbariReportingTask</h2>
-
- <p>This ReportingTask sends the following metrics to Ambari:</p>
- <ul>
- <li>FlowFilesReceivedLast5Minutes</li>
- <li>BytesReceivedLast5Minutes</li>
- <li>FlowFilesSentLast5Minutes</li>
- <li>BytesSentLast5Minutes</li>
- <li>FlowFilesQueued</li>
- <li>BytesQueued</li>
- <li>BytesReadLast5Minutes</li>
- <li>BytesWrittenLast5Minutes</li>
- <li>ActiveThreads</li>
- <li>TotalTaskDurationSeconds</li>
- <li>jvm.uptime</li>
- <li>jvm.heap_used</li>
- <li>jvm.heap_usage</li>
- <li>jvm.non_heap_usage</li>
- <li>jvm.thread_states.runnable</li>
- <li>jvm.thread_states.blocked</li>
- <li>jvm.thread_states.timed_waiting</li>
- <li>jvm.thread_states.terminated</li>
- <li>jvm.thread_count</li>
- <li>jvm.daemon_thread_count</li>
- <li>jvm.file_descriptor_usage</li>
- <li>jvm.gc.runs</li>
- <li>jvm.gc.time</li>
- </ul>
- <p>
- In order to make use of these metrics in Ambari, a NIFI service
must be created and installed
- in Ambari. Please consult the Ambari and NiFi documentation for
further details.
- </p>
- </body>
-</html>
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/TestAmbariReportingTask.java
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/TestAmbariReportingTask.java
deleted file mode 100644
index ed49e9ca00..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/TestAmbariReportingTask.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.reporting.ambari;
-
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.logging.ComponentLog;
-import org.apache.nifi.reporting.EventAccess;
-import org.apache.nifi.reporting.InitializationException;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.ReportingInitializationContext;
-import org.apache.nifi.util.MockPropertyValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.mockito.ArgumentMatchers;
-import org.mockito.Mockito;
-
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.UUID;
-
-public class TestAmbariReportingTask {
-
- private ProcessGroupStatus status;
-
- @BeforeEach
- public void setup() {
- status = new ProcessGroupStatus();
- status.setId("1234");
- status.setFlowFilesReceived(5);
- status.setBytesReceived(10000);
- status.setFlowFilesSent(10);
- status.setBytesSent(20000);
- status.setQueuedCount(100);
- status.setQueuedContentSize(1024L);
- status.setBytesRead(60000L);
- status.setBytesWritten(80000L);
- status.setActiveThreadCount(5);
-
- // create a processor status with processing time
- ProcessorStatus procStatus = new ProcessorStatus();
- procStatus.setProcessingNanos(123456789);
-
- Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- // create a group status with processing time
- ProcessGroupStatus groupStatus = new ProcessGroupStatus();
- groupStatus.setProcessorStatus(processorStatuses);
-
- Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
- groupStatuses.add(groupStatus);
- status.setProcessGroupStatus(groupStatuses);
- }
-
- @Test
- public void testOnTrigger() throws InitializationException, IOException {
- final String metricsUrl =
"http://myambari:6188/ws/v1/timeline/metrics";
- final String applicationId = "NIFI";
- final String hostName = "localhost";
-
- // create the jersey client mocks for handling the post
- final Client client = Mockito.mock(Client.class);
- final WebTarget target = Mockito.mock(WebTarget.class);
- final Invocation.Builder builder =
Mockito.mock(Invocation.Builder.class);
-
- final Response response = Mockito.mock(Response.class);
- Mockito.when(response.getStatus()).thenReturn(200);
-
- Mockito.when(client.target(metricsUrl)).thenReturn(target);
- Mockito.when(target.request()).thenReturn(builder);
-
Mockito.when(builder.post(ArgumentMatchers.any(Entity.class))).thenReturn(response);
-
- // mock the ReportingInitializationContext for initialize(...)
- final ComponentLog logger = Mockito.mock(ComponentLog.class);
- final ReportingInitializationContext initContext =
Mockito.mock(ReportingInitializationContext.class);
-
Mockito.when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
- Mockito.when(initContext.getLogger()).thenReturn(logger);
-
- // mock the ConfigurationContext for setup(...)
- final ConfigurationContext configurationContext =
Mockito.mock(ConfigurationContext.class);
-
- // mock the ReportingContext for onTrigger(...)
- final ReportingContext context = Mockito.mock(ReportingContext.class);
-
Mockito.when(context.getProperty(AmbariReportingTask.METRICS_COLLECTOR_URL))
- .thenReturn(new MockPropertyValue(metricsUrl));
- Mockito.when(context.getProperty(AmbariReportingTask.APPLICATION_ID))
- .thenReturn(new MockPropertyValue(applicationId));
- Mockito.when(context.getProperty(AmbariReportingTask.HOSTNAME))
- .thenReturn(new MockPropertyValue(hostName));
- Mockito.when(context.getProperty(AmbariReportingTask.PROCESS_GROUP_ID))
- .thenReturn(new MockPropertyValue("1234"));
-
-
- final EventAccess eventAccess = Mockito.mock(EventAccess.class);
- Mockito.when(context.getEventAccess()).thenReturn(eventAccess);
- Mockito.when(eventAccess.getControllerStatus()).thenReturn(status);
-
- // create a testable instance of the reporting task
- final AmbariReportingTask task = new
TestableAmbariReportingTask(client);
- task.initialize(initContext);
- task.setup(configurationContext);
- task.onTrigger(context);
- }
-
- // override the creation of the client to provide a mock
- private class TestableAmbariReportingTask extends AmbariReportingTask {
-
- private Client testClient;
-
- public TestableAmbariReportingTask(Client client) {
- this.testClient = client;
- }
-
- @Override
- protected Client createClient() {
- return testClient;
- }
- }
-}
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/api/TestMetricsBuilder.java
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/api/TestMetricsBuilder.java
deleted file mode 100644
index ce3c689c8a..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/api/TestMetricsBuilder.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.reporting.ambari.api;
-
-import org.apache.nifi.reporting.util.metrics.api.MetricFields;
-import org.apache.nifi.reporting.util.metrics.api.MetricsBuilder;
-import org.junit.jupiter.api.Test;
-
-import javax.json.Json;
-import javax.json.JsonArray;
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
-public class TestMetricsBuilder {
-
- @Test
- public void testBuildMetricsObject() {
- final Map<String, ?> config = Collections.emptyMap();
- final JsonBuilderFactory factory = Json.createBuilderFactory(config);
-
- final String instanceId = "1234-5678-1234-5678";
- final String applicationId = "NIFI";
- final String hostname = "localhost";
- final long timestamp = System.currentTimeMillis();
-
- final Map<String,String> metrics = new HashMap<>();
- metrics.put("a", "1");
- metrics.put("b", "2");
-
- final MetricsBuilder metricsBuilder = new MetricsBuilder(factory);
- final JsonObject metricsObject = metricsBuilder
- .applicationId(applicationId)
- .instanceId(instanceId)
- .hostname(hostname)
- .timestamp(timestamp)
- .addAllMetrics(metrics)
- .build();
-
- final JsonArray metricsArray = metricsObject.getJsonArray("metrics");
- assertNotNull(metricsArray);
- assertEquals(2, metricsArray.size());
-
- JsonObject firstMetric = metricsArray.getJsonObject(0);
- if (!"a".equals(firstMetric.getString(MetricFields.METRIC_NAME))) {
- firstMetric = metricsArray.getJsonObject(1);
- }
-
- assertEquals("a", firstMetric.getString(MetricFields.METRIC_NAME));
- assertEquals(applicationId,
firstMetric.getString(MetricFields.APP_ID));
- assertEquals(instanceId,
firstMetric.getString(MetricFields.INSTANCE_ID));
- assertEquals(hostname, firstMetric.getString(MetricFields.HOSTNAME));
- assertEquals(String.valueOf(timestamp),
firstMetric.getString(MetricFields.TIMESTAMP));
-
- final JsonObject firstMetricValues =
firstMetric.getJsonObject("metrics");
- assertEquals("1", firstMetricValues.getString("" + timestamp));
- }
-
-}
diff --git
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/metrics/TestMetricsService.java
b/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/metrics/TestMetricsService.java
deleted file mode 100644
index 80fc1b194b..0000000000
---
a/nifi-nar-bundles/nifi-ambari-bundle/nifi-ambari-reporting-task/src/test/java/org/apache/nifi/reporting/ambari/metrics/TestMetricsService.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.reporting.ambari.metrics;
-
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.metrics.jvm.JvmMetrics;
-import org.apache.nifi.reporting.util.metrics.MetricNames;
-import org.apache.nifi.reporting.util.metrics.MetricsService;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TestMetricsService {
-
- @Test
- public void testGetProcessGroupStatusMetrics() {
- ProcessGroupStatus status = new ProcessGroupStatus();
- status.setId("1234");
- status.setFlowFilesReceived(5);
- status.setBytesReceived(10000);
- status.setFlowFilesSent(10);
- status.setBytesSent(20000);
- status.setQueuedCount(100);
- status.setQueuedContentSize(1024L);
- status.setBytesRead(60000L);
- status.setBytesWritten(80000L);
- status.setActiveThreadCount(5);
-
- // create a processor status with processing time
- ProcessorStatus procStatus = new ProcessorStatus();
- procStatus.setProcessingNanos(123456789);
-
- Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- // create a group status with processing time
- ProcessGroupStatus groupStatus = new ProcessGroupStatus();
- groupStatus.setProcessorStatus(processorStatuses);
-
- Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
- groupStatuses.add(groupStatus);
- status.setProcessGroupStatus(groupStatuses);
-
- final MetricsService service = new MetricsService();
-
- final Map<String,String> metrics = service.getMetrics(status, false);
-
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_RECEIVED));
- assertTrue(metrics.containsKey(MetricNames.BYTES_RECEIVED));
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_SENT));
- assertTrue(metrics.containsKey(MetricNames.BYTES_SENT));
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_QUEUED));
- assertTrue(metrics.containsKey(MetricNames.BYTES_QUEUED));
- assertTrue(metrics.containsKey(MetricNames.BYTES_READ));
- assertTrue(metrics.containsKey(MetricNames.BYTES_WRITTEN));
- assertTrue(metrics.containsKey(MetricNames.ACTIVE_THREADS));
-
assertTrue(metrics.containsKey(MetricNames.TOTAL_TASK_DURATION_SECONDS));
- assertTrue(metrics.containsKey(MetricNames.TOTAL_TASK_DURATION_NANOS));
- }
-
- @Test
- public void testGetProcessGroupStatusMetricsWithID() {
- ProcessGroupStatus status = new ProcessGroupStatus();
- String id = "1234";
- status.setId(id);
- status.setFlowFilesReceived(5);
- status.setBytesReceived(10000);
- status.setFlowFilesSent(10);
- status.setBytesSent(20000);
- status.setQueuedCount(100);
- status.setQueuedContentSize(1024L);
- status.setBytesRead(60000L);
- status.setBytesWritten(80000L);
- status.setActiveThreadCount(5);
-
- // create a processor status with processing time
- ProcessorStatus procStatus = new ProcessorStatus();
- procStatus.setProcessingNanos(123456789);
-
- Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- // create a group status with processing time
- ProcessGroupStatus groupStatus = new ProcessGroupStatus();
- groupStatus.setProcessorStatus(processorStatuses);
-
- Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
- groupStatuses.add(groupStatus);
- status.setProcessGroupStatus(groupStatuses);
-
- final MetricsService service = new MetricsService();
-
- final Map<String,String> metrics = service.getMetrics(status, true);
-
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_RECEIVED +
MetricNames.METRIC_NAME_SEPARATOR + id));
- }
-
- @Test
- public void testGetVirtualMachineMetrics() {
- final JvmMetrics virtualMachineMetrics = JmxJvmMetrics.getInstance();
- final MetricsService service = new MetricsService();
-
- final Map<String,String> metrics =
service.getMetrics(virtualMachineMetrics);
- assertTrue(metrics.containsKey(MetricNames.JVM_UPTIME));
- assertTrue(metrics.containsKey(MetricNames.JVM_HEAP_USED));
- assertTrue(metrics.containsKey(MetricNames.JVM_HEAP_USAGE));
- assertTrue(metrics.containsKey(MetricNames.JVM_NON_HEAP_USAGE));
-
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_RUNNABLE));
- assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_BLOCKED));
-
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_TIMED_WAITING));
-
assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_STATES_TERMINATED));
- assertTrue(metrics.containsKey(MetricNames.JVM_THREAD_COUNT));
- assertTrue(metrics.containsKey(MetricNames.JVM_DAEMON_THREAD_COUNT));
- assertTrue(metrics.containsKey(MetricNames.JVM_FILE_DESCRIPTOR_USAGE));
- }
-
-}
diff --git a/nifi-nar-bundles/nifi-ambari-bundle/pom.xml
b/nifi-nar-bundles/nifi-ambari-bundle/pom.xml
deleted file mode 100644
index caa02b8cf5..0000000000
--- a/nifi-nar-bundles/nifi-ambari-bundle/pom.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-nar-bundles</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>nifi-ambari-bundle</artifactId>
- <packaging>pom</packaging>
-
- <modules>
- <module>nifi-ambari-reporting-task</module>
- <module>nifi-ambari-nar</module>
- </modules>
-</project>
diff --git a/nifi-nar-bundles/pom.xml b/nifi-nar-bundles/pom.xml
index a76d1aac05..24afd207f9 100755
--- a/nifi-nar-bundles/pom.xml
+++ b/nifi-nar-bundles/pom.xml
@@ -46,7 +46,6 @@
<module>nifi-language-translation-bundle</module>
<module>nifi-mongodb-bundle</module>
<module>nifi-hbase-bundle</module>
- <module>nifi-ambari-bundle</module>
<module>nifi-asana-bundle</module>
<module>nifi-media-bundle</module>
<module>nifi-avro-bundle</module>