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 030435d996 NIFI-13149 Removed nifi-datadog-bundle
030435d996 is described below
commit 030435d996d8157380fdb193992fe60731788a79
Author: Joseph Witt <[email protected]>
AuthorDate: Mon May 6 10:53:19 2024 -0700
NIFI-13149 Removed nifi-datadog-bundle
This closes #8751
Signed-off-by: David Handermann <[email protected]>
---
nifi-assembly/pom.xml | 6 -
nifi-code-coverage/pom.xml | 5 -
.../nifi-datadog-bundle/nifi-datadog-nar/pom.xml | 40 ---
.../src/main/resources/META-INF/LICENSE | 262 --------------------
.../src/main/resources/META-INF/NOTICE | 106 --------
.../nifi-datadog-reporting-task/pom.xml | 72 ------
.../reporting/datadog/DDMetricRegistryBuilder.java | 84 -------
.../reporting/datadog/DataDogReportingTask.java | 269 ---------------------
.../nifi/reporting/datadog/api/MetricBuilder.java | 84 -------
.../nifi/reporting/datadog/api/MetricFields.java | 29 ---
.../nifi/reporting/datadog/api/MetricsBuilder.java | 93 -------
.../reporting/datadog/metrics/MetricNames.java | 60 -----
.../reporting/datadog/metrics/MetricsService.java | 155 ------------
.../org.apache.nifi.reporting.ReportingTask | 15 --
.../additionalDetails.html | 53 ----
.../datadog/TestDataDogReportingTask.java | 200 ---------------
.../nifi/reporting/datadog/TestMetricsService.java | 111 ---------
nifi-extension-bundles/nifi-datadog-bundle/pom.xml | 30 ---
nifi-extension-bundles/pom.xml | 1 -
19 files changed, 1675 deletions(-)
diff --git a/nifi-assembly/pom.xml b/nifi-assembly/pom.xml
index 34342a022a..25c6996820 100644
--- a/nifi-assembly/pom.xml
+++ b/nifi-assembly/pom.xml
@@ -284,12 +284,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-datadog-nar</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-standard-nar</artifactId>
diff --git a/nifi-code-coverage/pom.xml b/nifi-code-coverage/pom.xml
index 6265d496b0..0b389fa484 100644
--- a/nifi-code-coverage/pom.xml
+++ b/nifi-code-coverage/pom.xml
@@ -867,11 +867,6 @@
<artifactId>nifi-couchbase-services-api</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-datadog-reporting-task</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
<artifactId>nifi-dropbox-processors</artifactId>
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml
deleted file mode 100644
index b2c4769757..0000000000
--- a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/pom.xml
+++ /dev/null
@@ -1,40 +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-datadog-bundle</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>nifi-datadog-nar</artifactId>
- <packaging>nar</packaging>
-
-
- <dependencies>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-datadog-reporting-task</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.apache.nifi</groupId>
- <artifactId>nifi-standard-shared-nar</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- <type>nar</type>
- </dependency>
- </dependencies>
-</project>
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
deleted file mode 100644
index b7b067d073..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/LICENSE
+++ /dev/null
@@ -1,262 +0,0 @@
-
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright [yyyy] [name of copyright owner]
-
- Licensed 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.
-
-APACHE NIFI SUBCOMPONENTS:
-
-The Apache NiFi project contains subcomponents with separate copyright
-notices and license terms. Your use of the source code for the these
-subcomponents is subject to the terms and conditions of the following
-licenses.
-
-
-This project bundles 'metrics-datadog' which is available
-under a "Simplified BSD license".
-
- Copyright (c) 2014, Vistar Media
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright
notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright
notice,
- this list of conditions and the following disclaimer in the
documentation
- and/or other materials provided with the distribution.
- * Neither the name of Vistar Media nor the names of its contributors
- may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-The binary distribution of this project bundles "Java-DogStatsd-client"
-under an MIT style license.
-
- java-statsd-client. Copyright (C) 2012 youDevise, Ltd.
-
- Permission is hereby granted, free of charge, to any person obtaining a
copy
- of this software and associated documentation files (the "Software"), to
deal
- in the Software without restriction, including without limitation the
rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in
- all copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- THE SOFTWARE.
\ No newline at end of file
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
deleted file mode 100644
index 6e91d283e3..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-nar/src/main/resources/META-INF/NOTICE
+++ /dev/null
@@ -1,106 +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
-
- (ASLv2) Apache Commons Lang
- The following NOTICE information applies:
- Apache Commons Lang
- Copyright 2001-2015 The Apache Software Foundation
-
- (ASLv2) Apache Commons IO
- The following NOTICE information applies:
- Apache Commons IO
- Copyright 2002-2016 The Apache Software Foundation
-
- (ASLv2) Apache HttpComponents Client
- The following NOTICE information applies:
- Apache HttpComponents Client
- Copyright 1999-2016 The Apache Software Foundation
-
- (ASLv2) Apache Commons Codec
- The following NOTICE information applies:
- Apache Commons Codec
- Copyright 2002-2014 The Apache Software Foundation
-
- src/test/org/apache/commons/codec/language/DoubleMetaphoneTest.java
- contains test data from http://aspell.net/test/orig/batch0.tab.
- Copyright (C) 2002 Kevin Atkinson ([email protected])
-
-
===============================================================================
-
- The content of package org.apache.commons.codec.language.bm has been
translated
- from the original php source code available at
http://stevemorse.org/phoneticinfo.htm
- with permission from the original authors.
- Original source copyright:
- Copyright (c) 2008 Alexander Beider & Stephen P. Morse.
-
- (ASLv2) Jackson JSON processor
- The following NOTICE information applies:
- # Jackson JSON processor
-
- Jackson is a high-performance, Free/Open Source JSON processing library.
- It was originally written by Tatu Saloranta ([email protected]), and
has
- been in development since 2007.
- It is currently developed by a community of developers, as well as
supported
- commercially by FasterXML.com.
-
- ## Licensing
-
- Jackson core and extension components may licensed under different
licenses.
- To find the details that apply to this artifact see the accompanying
LICENSE file.
- For more information, including possible other licensing options, contact
- FasterXML.com (http://fasterxml.com).
-
- ## Credits
-
- A list of contributors may be found from CREDITS file, which is included
- in some artifacts (usually source distributions); but is always available
- from the source code management (SCM) system project uses.
-
-************************
-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-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
deleted file mode 100644
index 6f85e74a69..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/pom.xml
+++ /dev/null
@@ -1,72 +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-datadog-bundle</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <artifactId>nifi-datadog-reporting-task</artifactId>
- <description>Publishes NiFi metrics to datadog</description>
-
- <dependencies>
- <dependency>
- <groupId>org.glassfish.jersey.core</groupId>
- <artifactId>jersey-client</artifactId>
- </dependency>
- <dependency>
- <groupId>org.glassfish</groupId>
- <artifactId>javax.json</artifactId>
- <version>1.1.4</version>
- </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-metrics</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>io.dropwizard.metrics</groupId>
- <artifactId>metrics-core</artifactId>
- <version>4.2.25</version>
- </dependency>
- <dependency>
- <groupId>org.coursera</groupId>
- <artifactId>metrics-datadog</artifactId>
- <version>1.1.14</version>
- <exclusions>
- <exclusion>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </exclusion>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- </dependency>
- </dependencies>
-</project>
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
deleted file mode 100644
index f53604d344..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DDMetricRegistryBuilder.java
+++ /dev/null
@@ -1,84 +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.datadog;
-
-import com.codahale.metrics.MetricRegistry;
-import org.coursera.metrics.datadog.DatadogReporter;
-import org.coursera.metrics.datadog.transport.HttpTransport;
-import org.coursera.metrics.datadog.transport.Transport;
-import org.coursera.metrics.datadog.transport.UdpTransport;
-
-import java.io.IOException;
-import java.net.InetAddress;
-
-/**
- * Class configures MetricRegistry (passed outside or created from scratch)
with Datadog support
- */
-public class DDMetricRegistryBuilder {
-
-
- private MetricRegistry metricRegistry = null;
- private DatadogReporter datadogReporter;
- private String apiKey = "";
- private Transport transport;
-
- public DDMetricRegistryBuilder setMetricRegistry(MetricRegistry
metricRegistry) {
- this.metricRegistry = metricRegistry;
- return this;
- }
-
- public DatadogReporter getDatadogReporter() {
- return datadogReporter;
- }
-
- public MetricRegistry build(String apiKey) throws IOException {
- if (metricRegistry == null)
- metricRegistry = new MetricRegistry();
-
- if (createTransport(apiKey)) {
- datadogReporter = createDatadogReporter(this.metricRegistry);
- }
- return this.metricRegistry;
- }
-
- private boolean createTransport(String apiKey) {
- //if api key was not changed
- if (this.apiKey.equals(apiKey)) {
- return false;
- } else if (apiKey.equals("agent")) {
- this.apiKey = "agent";
- transport = new UdpTransport.Builder().build();
- return true;
- } else {
- this.apiKey = apiKey;
- transport = new HttpTransport.Builder().withApiKey(apiKey).build();
- return true;
- }
- }
-
- /*
- * create DataDog reporter
- */
- private DatadogReporter createDatadogReporter(MetricRegistry
metricRegistry) throws IOException {
- DatadogReporter reporter =
- DatadogReporter.forRegistry(metricRegistry)
- .withHost(InetAddress.getLocalHost().getHostName())
- .withTransport(transport)
- .build();
- return reporter;
- }
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
deleted file mode 100644
index 1cf18d1a8d..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/DataDogReportingTask.java
+++ /dev/null
@@ -1,269 +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.datadog;
-
-import com.codahale.metrics.Gauge;
-import com.codahale.metrics.MetricRegistry;
-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.AllowableValue;
-import org.apache.nifi.components.PropertyDescriptor;
-import org.apache.nifi.controller.ConfigurationContext;
-import org.apache.nifi.controller.status.ConnectionStatus;
-import org.apache.nifi.controller.status.PortStatus;
-import org.apache.nifi.controller.status.ProcessGroupStatus;
-import org.apache.nifi.controller.status.ProcessorStatus;
-import org.apache.nifi.expression.ExpressionLanguageScope;
-import org.apache.nifi.metrics.jvm.JmxJvmMetrics;
-import org.apache.nifi.processor.util.StandardValidators;
-import org.apache.nifi.reporting.AbstractReportingTask;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.coursera.metrics.datadog.DynamicTagsCallback;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Tags({"reporting", "datadog", "metrics"})
-@CapabilityDescription("Publishes metrics from NiFi to datadog. For accurate
and informative reporting, components should have unique names.")
-public class DataDogReportingTask extends AbstractReportingTask {
-
- static final AllowableValue DATADOG_AGENT = new AllowableValue("Datadog
Agent", "Datadog Agent",
- "Metrics will be sent via locally installed Datadog agent. " +
- "Datadog agent needs to be installed manually before using
this option");
-
- static final AllowableValue DATADOG_HTTP = new AllowableValue("Datadog
HTTP", "Datadog HTTP",
- "Metrics will be sent via HTTP transport with no need of Agent
installed. " +
- "Datadog API key needs to be set");
-
- static final PropertyDescriptor DATADOG_TRANSPORT = new
PropertyDescriptor.Builder()
- .name("Datadog transport")
- .description("Transport through which metrics will be sent to
Datadog")
- .required(true)
- .allowableValues(DATADOG_AGENT, DATADOG_HTTP)
- .defaultValue(DATADOG_HTTP.getValue())
- .build();
-
- static final PropertyDescriptor API_KEY = new PropertyDescriptor.Builder()
- .name("API key")
- .description("Datadog API key. If specified value is 'agent',
local Datadog agent will be used.")
- .required(false)
- .sensitive(true)
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- static final PropertyDescriptor METRICS_PREFIX = new
PropertyDescriptor.Builder()
- .name("Metrics prefix")
- .description("Prefix to be added before every metric")
- .required(true)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .defaultValue("nifi")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- static final PropertyDescriptor ENVIRONMENT = new
PropertyDescriptor.Builder()
- .name("Environment")
- .description("Environment, dataflow is running in. " +
- "This property will be included as metrics tag.")
- .required(true)
- .expressionLanguageSupported(ExpressionLanguageScope.ENVIRONMENT)
- .defaultValue("dev")
- .addValidator(StandardValidators.NON_EMPTY_VALIDATOR)
- .build();
-
- private MetricsService metricsService;
- private DDMetricRegistryBuilder ddMetricRegistryBuilder;
- private MetricRegistry metricRegistry;
- private String metricsPrefix;
- private String environment;
- private ConcurrentHashMap<String, Double> metricsMap;
- private Map<String, String> defaultTags;
- private volatile JmxJvmMetrics virtualMachineMetrics;
-
- @OnScheduled
- public void setup(final ConfigurationContext context) {
- metricsService = getMetricsService();
- ddMetricRegistryBuilder = getMetricRegistryBuilder();
- metricRegistry = getMetricRegistry();
- metricsMap = getMetricsMap();
- metricsPrefix = METRICS_PREFIX.getDefaultValue();
- environment = ENVIRONMENT.getDefaultValue();
- virtualMachineMetrics = JmxJvmMetrics.getInstance();
- ddMetricRegistryBuilder.setMetricRegistry(metricRegistry);
- }
-
- @Override
- protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
- final List<PropertyDescriptor> properties = new ArrayList<>();
- properties.add(METRICS_PREFIX);
- properties.add(ENVIRONMENT);
- properties.add(API_KEY);
- properties.add(DATADOG_TRANSPORT);
- return properties;
- }
-
- @Override
- public void onTrigger(ReportingContext context) {
- final ProcessGroupStatus status =
context.getEventAccess().getControllerStatus();
-
- metricsPrefix =
context.getProperty(METRICS_PREFIX).evaluateAttributeExpressions().getValue();
- environment =
context.getProperty(ENVIRONMENT).evaluateAttributeExpressions().getValue();
- final Map<String, String> tags = new HashMap<>();
- tags.put("env", environment);
- tags.put("dataflow_id", status.getId());
- defaultTags = Collections.unmodifiableMap(tags);
- try {
- updateDataDogTransport(context);
- } catch (IOException e) {
- getLogger().warn("Unable to update data dog transport", e);
- }
- updateAllMetricGroups(status);
- ddMetricRegistryBuilder.getDatadogReporter().report();
- }
-
- protected void updateMetrics(Map<String, Double> metrics, Map<String,
String> tags) {
- for (Map.Entry<String, Double> entry : metrics.entrySet()) {
- final String metricName = buildMetricName(entry.getKey());
- getLogger().debug("Metric [{}] Value [{}]", metricName,
entry.getValue());
- //if metric is not registered yet - register it
- if (!metricsMap.containsKey(metricName)) {
- metricsMap.put(metricName, entry.getValue());
- metricRegistry.register(metricName, new
MetricGauge(metricName, tags));
- }
- //set real time value to metrics map
- metricsMap.put(metricName, entry.getValue());
- }
- }
-
- private void updateAllMetricGroups(ProcessGroupStatus processGroupStatus) {
- final List<ProcessorStatus> processorStatuses = new ArrayList<>();
- populateProcessorStatuses(processGroupStatus, processorStatuses);
- for (final ProcessorStatus processorStatus : processorStatuses) {
- final Map<String, String> processorTags = new
HashMap<>(defaultTags);
-
processorTags.putAll(metricsService.getProcessorTags(processorStatus));
- updateMetrics(metricsService.getProcessorMetrics(processorStatus),
processorTags);
- }
-
- final List<ConnectionStatus> connectionStatuses = new ArrayList<>();
- populateConnectionStatuses(processGroupStatus, connectionStatuses);
- for (ConnectionStatus connectionStatus: connectionStatuses) {
-
updateMetrics(metricsService.getConnectionStatusMetrics(connectionStatus),
defaultTags);
- }
-
- final List<PortStatus> inputPortStatuses = new ArrayList<>();
- populateInputPortStatuses(processGroupStatus, inputPortStatuses);
- for (PortStatus portStatus: inputPortStatuses) {
- updateMetrics(metricsService.getPortStatusMetrics(portStatus),
defaultTags);
- }
-
- final List<PortStatus> outputPortStatuses = new ArrayList<>();
- populateOutputPortStatuses(processGroupStatus, outputPortStatuses);
- for (PortStatus portStatus: outputPortStatuses) {
- updateMetrics(metricsService.getPortStatusMetrics(portStatus),
defaultTags);
- }
-
- updateMetrics(metricsService.getJVMMetrics(virtualMachineMetrics),
defaultTags);
- updateMetrics(metricsService.getDataFlowMetrics(processGroupStatus),
defaultTags);
- }
-
- private class MetricGauge implements Gauge<Object>, DynamicTagsCallback {
- private final Map<String, String> tags;
- private final String metricName;
-
- public MetricGauge(String metricName, Map<String, String> tagsMap) {
- this.tags = tagsMap;
- this.metricName = metricName;
- }
-
- @Override
- public Object getValue() {
- return metricsMap.get(metricName);
- }
-
- @Override
- public List<String> getTags() {
- List<String> tagsList = new ArrayList<>();
- for (Map.Entry<String, String> entry : tags.entrySet()) {
- tagsList.add(entry.getKey() + ":" + entry.getValue());
- }
- return tagsList;
- }
- }
-
- private void updateDataDogTransport(ReportingContext context) throws
IOException {
- String dataDogTransport =
context.getProperty(DATADOG_TRANSPORT).getValue();
- if (dataDogTransport.equalsIgnoreCase(DATADOG_AGENT.getValue())) {
- ddMetricRegistryBuilder.build("agent");
- } else if (dataDogTransport.equalsIgnoreCase(DATADOG_HTTP.getValue())
- && context.getProperty(API_KEY).isSet()) {
-
ddMetricRegistryBuilder.build(context.getProperty(API_KEY).getValue());
- }
- }
-
- private void populateProcessorStatuses(final ProcessGroupStatus
groupStatus, final List<ProcessorStatus> statuses) {
- statuses.addAll(groupStatus.getProcessorStatus());
- for (final ProcessGroupStatus childGroupStatus :
groupStatus.getProcessGroupStatus()) {
- populateProcessorStatuses(childGroupStatus, statuses);
- }
- }
-
- private void populateConnectionStatuses(final ProcessGroupStatus
groupStatus, final List<ConnectionStatus> statuses) {
- statuses.addAll(groupStatus.getConnectionStatus());
- for (final ProcessGroupStatus childGroupStatus :
groupStatus.getProcessGroupStatus()) {
- populateConnectionStatuses(childGroupStatus, statuses);
- }
- }
-
- private void populateInputPortStatuses(final ProcessGroupStatus
groupStatus, final List<PortStatus> statuses) {
- statuses.addAll(groupStatus.getInputPortStatus());
- for (final ProcessGroupStatus childGroupStatus :
groupStatus.getProcessGroupStatus()) {
- populateInputPortStatuses(childGroupStatus, statuses);
- }
- }
-
- private void populateOutputPortStatuses(final ProcessGroupStatus
groupStatus, final List<PortStatus> statuses) {
- statuses.addAll(groupStatus.getOutputPortStatus());
- for (final ProcessGroupStatus childGroupStatus :
groupStatus.getProcessGroupStatus()) {
- populateOutputPortStatuses(childGroupStatus, statuses);
- }
- }
-
- private String buildMetricName(String metricName) {
- return metricsPrefix + "." + metricName;
- }
-
- protected MetricsService getMetricsService() {
- return new MetricsService();
- }
-
- protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
- return new DDMetricRegistryBuilder();
- }
-
- protected MetricRegistry getMetricRegistry() {
- return new MetricRegistry();
- }
-
- protected ConcurrentHashMap<String, Double> getMetricsMap() {
- return new ConcurrentHashMap<>();
- }
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
deleted file mode 100644
index d5de4c7083..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricBuilder.java
+++ /dev/null
@@ -1,84 +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.datadog.api;
-
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-
-/**
- * Builds the JsonObject for an individual metric.
- */
-public class MetricBuilder {
-
- private final JsonBuilderFactory factory;
-
- private String applicationId;
- private String instanceId;
- private String hostname;
- private String timestamp;
- private String metricName;
- private String metricValue;
-
- public MetricBuilder(final JsonBuilderFactory factory) {
- this.factory = factory;
- }
-
- public MetricBuilder applicationId(final String applicationId) {
- this.applicationId = applicationId;
- return this;
- }
-
- public MetricBuilder instanceId(final String instanceId) {
- this.instanceId = instanceId;
- return this;
- }
-
- public MetricBuilder hostname(final String hostname) {
- this.hostname = hostname;
- return this;
- }
-
- public MetricBuilder timestamp(final long timestamp) {
- this.timestamp = String.valueOf(timestamp);
- return this;
- }
-
- public MetricBuilder metricName(final String metricName) {
- this.metricName = metricName;
- return this;
- }
-
- public MetricBuilder metricValue(final String metricValue) {
- this.metricValue = metricValue;
- return this;
- }
-
- public JsonObject build() {
- return factory.createObjectBuilder()
- .add(MetricFields.METRIC_NAME, metricName)
- .add(MetricFields.APP_ID, applicationId)
- .add(MetricFields.INSTANCE_ID, instanceId)
- .add(MetricFields.HOSTNAME, hostname)
- .add(MetricFields.TIMESTAMP, timestamp)
- .add(MetricFields.START_TIME, timestamp)
- .add(MetricFields.METRICS,
- factory.createObjectBuilder()
- .add(String.valueOf(timestamp), metricValue)
- ).build();
- }
-
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
deleted file mode 100644
index df0291da63..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricFields.java
+++ /dev/null
@@ -1,29 +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.datadog.api;
-
-public interface MetricFields {
-
- String METRIC_NAME = "metricname";
- String APP_ID = "appid";
- String INSTANCE_ID = "instanceid";
- String HOSTNAME = "hostname";
- String TIMESTAMP = "timestamp";
- String START_TIME = "starttime";
- String METRICS = "metrics";
-
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
deleted file mode 100644
index 3aa13b0612..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/api/MetricsBuilder.java
+++ /dev/null
@@ -1,93 +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.datadog.api;
-
-import javax.json.JsonArrayBuilder;
-import javax.json.JsonBuilderFactory;
-import javax.json.JsonObject;
-import javax.json.JsonObjectBuilder;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Builds the overall JsonObject for the Metrics.
- */
-public class MetricsBuilder {
-
- static final String ROOT_JSON_ELEMENT = "metrics";
-
- private final JsonBuilderFactory factory;
-
- private long timestamp;
- private String applicationId;
- private String instanceId;
- private String hostname;
- private Map<String,String> metrics = new HashMap<>();
-
- public MetricsBuilder(final JsonBuilderFactory factory) {
- this.factory = factory;
- }
-
- public MetricsBuilder applicationId(final String applicationId) {
- this.applicationId = applicationId;
- return this;
- }
-
- public MetricsBuilder instanceId(final String instanceId) {
- this.instanceId = instanceId;
- return this;
- }
-
- public MetricsBuilder hostname(final String hostname) {
- this.hostname = hostname;
- return this;
- }
-
- public MetricsBuilder timestamp(final long timestamp) {
- this.timestamp = timestamp;
- return this;
- }
-
- public MetricsBuilder metric(final String name, String value) {
- this.metrics.put(name, value);
- return this;
- }
-
- public MetricsBuilder addAllMetrics(final Map<String,String> metrics) {
- this.metrics.putAll(metrics);
- return this;
- }
-
- public JsonObject build() {
- // builds JsonObject for individual metrics
- final MetricBuilder metricBuilder = new MetricBuilder(factory);
-
metricBuilder.instanceId(instanceId).applicationId(applicationId).timestamp(timestamp).hostname(hostname);
-
- final JsonArrayBuilder metricArrayBuilder =
factory.createArrayBuilder();
-
- for (Map.Entry<String,String> entry : metrics.entrySet()) {
-
metricBuilder.metricName(entry.getKey()).metricValue(entry.getValue());
- metricArrayBuilder.add(metricBuilder.build());
- }
-
- // add the array of metrics to a top-level json object
- final JsonObjectBuilder metricsBuilder = factory.createObjectBuilder();
- metricsBuilder.add(ROOT_JSON_ELEMENT, metricArrayBuilder);
- return metricsBuilder.build();
- }
-
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
deleted file mode 100644
index 58f5e3476a..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricNames.java
+++ /dev/null
@@ -1,60 +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.datadog.metrics;
-
-/**
- * The Metric names to send to DataDog.
- */
-public interface MetricNames {
-
- // NiFi Metrics
- String FLOW_FILES_RECEIVED = "FlowFilesReceivedLast5Minutes";
- String BYTES_RECEIVED = "BytesReceivedLast5Minutes";
- String FLOW_FILES_SENT = "FlowFilesSentLast5Minutes";
- String BYTES_SENT = "BytesSentLast5Minutes";
- String FLOW_FILES_QUEUED = "FlowFilesQueued";
- String BYTES_QUEUED = "BytesQueued";
- String BYTES_READ = "BytesReadLast5Minutes";
- String BYTES_WRITTEN = "BytesWrittenLast5Minutes";
- String ACTIVE_THREADS = "ActiveThreads";
- String TOTAL_TASK_DURATION = "TotalTaskDurationSeconds";
-
- // JVM Metrics
- String JVM_UPTIME = "jvm.uptime";
- String JVM_HEAP_USED = "jvm.heap_used";
- String JVM_HEAP_USAGE = "jvm.heap_usage";
- String JVM_NON_HEAP_USAGE = "jvm.non_heap_usage";
- String JVM_THREAD_STATES_RUNNABLE = "jvm.thread_states.runnable";
- String JVM_THREAD_STATES_BLOCKED = "jvm.thread_states.blocked";
- String JVM_THREAD_STATES_TIMED_WAITING = "jvm.thread_states.timed_waiting";
- String JVM_THREAD_STATES_TERMINATED = "jvm.thread_states.terminated";
- String JVM_THREAD_COUNT = "jvm.thread_count";
- String JVM_DAEMON_THREAD_COUNT = "jvm.daemon_thread_count";
- String JVM_FILE_DESCRIPTOR_USAGE = "jvm.file_descriptor_usage";
- String JVM_GC_RUNS = "jvm.gc.runs";
- String JVM_GC_TIME = "jvm.gc.time";
-
- // Port status metrics
- String INPUT_COUNT = "InputCount";
- String INPUT_BYTES = "InputBytes";
- String OUTPUT_COUNT = "OutputCount";
- String OUTPUT_BYTES = "OutputBytes";
-
- //Connection status metrics
- String QUEUED_COUNT = "QueuedCount";
- String QUEUED_BYTES = "QueuedBytes";
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
deleted file mode 100644
index b46b3ceefc..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/java/org/apache/nifi/reporting/datadog/metrics/MetricsService.java
+++ /dev/null
@@ -1,155 +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.datadog.metrics;
-
-import org.apache.nifi.controller.status.ConnectionStatus;
-import org.apache.nifi.controller.status.PortStatus;
-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.processor.DataUnit;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * A service used to produce key/value metrics based on a given input.
- */
-public class MetricsService {
-
- //processor - specific metrics
- public Map<String, Double> getProcessorMetrics(ProcessorStatus status) {
- final Map<String, Double> metrics = new HashMap<>();
- metrics.put(MetricNames.FLOW_FILES_RECEIVED,
Double.valueOf(status.getInputCount()));
- metrics.put(MetricNames.FLOW_FILES_SENT,
Double.valueOf(status.getOutputCount()));
- metrics.put(MetricNames.BYTES_READ,
Double.valueOf(status.getInputBytes()));
- metrics.put(MetricNames.BYTES_WRITTEN,
Double.valueOf(status.getOutputBytes()));
- metrics.put(MetricNames.ACTIVE_THREADS,
Double.valueOf(status.getActiveThreadCount()));
- metrics.put(MetricNames.TOTAL_TASK_DURATION,
Double.valueOf(status.getProcessingNanos()));
- return metrics;
- }
-
- public Map<String, String> getProcessorTags(ProcessorStatus status) {
- Map<String, String> tags = new HashMap<>();
- tags.put("processor", status.getName());
- return tags;
- }
-
- public Map<String, Double> getPortStatusMetrics(PortStatus status){
- final Map<String, Double> metrics = new HashMap<>();
- metrics.put(MetricNames.ACTIVE_THREADS,
Double.valueOf(status.getActiveThreadCount()));
- metrics.put(MetricNames.INPUT_COUNT,
Double.valueOf(status.getInputCount()));
- metrics.put(MetricNames.OUTPUT_COUNT,
Double.valueOf(status.getOutputCount()));
- metrics.put(MetricNames.INPUT_BYTES,
Double.valueOf(status.getInputBytes()));
- metrics.put(MetricNames.OUTPUT_BYTES,
Double.valueOf(status.getOutputBytes()));
- metrics.put(MetricNames.FLOW_FILES_RECEIVED,
Double.valueOf(status.getFlowFilesReceived()));
- metrics.put(MetricNames.FLOW_FILES_SENT,
Double.valueOf(status.getFlowFilesSent()));
- metrics.put(MetricNames.BYTES_RECEIVED,
Double.valueOf(status.getBytesReceived()));
- metrics.put(MetricNames.BYTES_SENT,
Double.valueOf(status.getBytesSent()));
- return metrics;
- }
-
- public Map<String, Double> getConnectionStatusMetrics(ConnectionStatus
status) {
- final Map<String, Double> metrics = new HashMap<>();
- metrics.put(MetricNames.INPUT_COUNT,
Double.valueOf(status.getInputCount()));
- metrics.put(MetricNames.INPUT_BYTES,
Double.valueOf(status.getInputBytes()));
- metrics.put(MetricNames.QUEUED_COUNT,
Double.valueOf(status.getQueuedCount()));
- metrics.put(MetricNames.QUEUED_BYTES,
Double.valueOf(status.getQueuedBytes()));
- metrics.put(MetricNames.OUTPUT_COUNT,
Double.valueOf(status.getOutputCount()));
- metrics.put(MetricNames.OUTPUT_BYTES,
Double.valueOf(status.getOutputBytes()));
- return metrics;
- }
-
-
- //general metrics for whole dataflow
- public Map<String, Double> getDataFlowMetrics(ProcessGroupStatus status) {
- final Map<String, Double> metrics = new HashMap<>();
- metrics.put(MetricNames.FLOW_FILES_RECEIVED,
Double.valueOf(status.getFlowFilesReceived()));
- metrics.put(MetricNames.BYTES_RECEIVED,
Double.valueOf(status.getBytesReceived()));
- metrics.put(MetricNames.FLOW_FILES_SENT,
Double.valueOf(status.getFlowFilesSent()));
- metrics.put(MetricNames.BYTES_SENT,
Double.valueOf(status.getBytesSent()));
- metrics.put(MetricNames.FLOW_FILES_QUEUED,
Double.valueOf(status.getQueuedCount()));
- metrics.put(MetricNames.BYTES_QUEUED,
Double.valueOf(status.getQueuedContentSize()));
- metrics.put(MetricNames.BYTES_READ,
Double.valueOf(status.getBytesRead()));
- metrics.put(MetricNames.BYTES_WRITTEN,
Double.valueOf(status.getBytesWritten()));
- metrics.put(MetricNames.ACTIVE_THREADS,
Double.valueOf(status.getActiveThreadCount()));
- metrics.put(MetricNames.TOTAL_TASK_DURATION,
Double.valueOf(calculateProcessingNanos(status)));
- status.getOutputPortStatus();
- return metrics;
- }
-
- //virtual machine metrics
- public Map<String, Double> getJVMMetrics(JmxJvmMetrics
virtualMachineMetrics) {
- final Map<String, Double> metrics = new HashMap<>();
- metrics.put(MetricNames.JVM_UPTIME,
Double.valueOf(virtualMachineMetrics.uptime()));
- metrics.put(MetricNames.JVM_HEAP_USED,
Double.valueOf(virtualMachineMetrics.heapUsed(DataUnit.B)));
- metrics.put(MetricNames.JVM_HEAP_USAGE,
Double.valueOf(virtualMachineMetrics.heapUsage()));
- metrics.put(MetricNames.JVM_NON_HEAP_USAGE,
Double.valueOf(virtualMachineMetrics.nonHeapUsage()));
- metrics.put(MetricNames.JVM_THREAD_COUNT,
Double.valueOf(virtualMachineMetrics.threadCount()));
- metrics.put(MetricNames.JVM_DAEMON_THREAD_COUNT,
Double.valueOf(virtualMachineMetrics.daemonThreadCount()));
- metrics.put(MetricNames.JVM_FILE_DESCRIPTOR_USAGE,
Double.valueOf(virtualMachineMetrics.fileDescriptorUsage()));
-
- for (Map.Entry<Thread.State, Double> entry :
virtualMachineMetrics.threadStatePercentages().entrySet()) {
- final int normalizedValue = (int) (100 * (entry.getValue() == null
? 0 : entry.getValue()));
- switch (entry.getKey()) {
- case BLOCKED:
- metrics.put(MetricNames.JVM_THREAD_STATES_BLOCKED,
Double.valueOf(normalizedValue));
- break;
- case RUNNABLE:
- metrics.put(MetricNames.JVM_THREAD_STATES_RUNNABLE,
Double.valueOf(normalizedValue));
- break;
- case TERMINATED:
- metrics.put(MetricNames.JVM_THREAD_STATES_TERMINATED,
Double.valueOf(normalizedValue));
- break;
- case TIMED_WAITING:
- metrics.put(MetricNames.JVM_THREAD_STATES_TIMED_WAITING,
Double.valueOf(normalizedValue));
- break;
- default:
- break;
- }
- }
-
- for (Map.Entry<String, JmxJvmMetrics.GarbageCollectorStats> entry :
virtualMachineMetrics.garbageCollectors().entrySet()) {
- final String gcName = entry.getKey().replace(" ", "");
- final long runs = entry.getValue().getRuns();
- final long timeMS =
entry.getValue().getTime(TimeUnit.MILLISECONDS);
- metrics.put(MetricNames.JVM_GC_RUNS + "." + gcName,
Double.valueOf(runs));
- metrics.put(MetricNames.JVM_GC_TIME + "." + gcName,
Double.valueOf(timeMS));
- }
-
- return metrics;
- }
-
-
- // calculates the total processing time of all processors in nanos
- protected long calculateProcessingNanos(final ProcessGroupStatus status) {
- long nanos = 0L;
-
- for (final ProcessorStatus procStats : status.getProcessorStatus()) {
- nanos += procStats.getProcessingNanos();
- }
-
- for (final ProcessGroupStatus childGroupStatus :
status.getProcessGroupStatus()) {
- nanos += calculateProcessingNanos(childGroupStatus);
- }
-
- return nanos;
- }
-
-
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/META-INF/services/org.apache.nifi.reporting.ReportingTask
deleted file mode 100644
index 23be9d75c6..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-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.datadog.DataDogReportingTask
\ No newline at end of file
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
deleted file mode 100644
index 0672a88daa..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/main/resources/docs/org.apache.nifi.reporting.datadog.DataDogReportingTask/additionalDetails.html
+++ /dev/null
@@ -1,53 +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>DataDogReportingTask</title>
- <link rel="stylesheet" href="../../../../../css/component-usage.css"
type="text/css" />
- </head>
-
- <body>
- <h2>DataDogReportingTask</h2>
-
- <p>This ReportingTask sends the following metrics to DataDog:</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>
- </body>
-</html>
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
deleted file mode 100644
index d7c08b919c..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestDataDogReportingTask.java
+++ /dev/null
@@ -1,200 +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.datadog;
-
-import com.codahale.metrics.MetricRegistry;
-import org.apache.nifi.controller.ConfigurationContext;
-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.reporting.EventAccess;
-import org.apache.nifi.reporting.InitializationException;
-import org.apache.nifi.reporting.ReportingContext;
-import org.apache.nifi.reporting.ReportingInitializationContext;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.apache.nifi.util.MockComponentLog;
-import org.apache.nifi.util.MockPropertyValue;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.atLeast;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class TestDataDogReportingTask {
-
- private ProcessGroupStatus status;
- private ProcessorStatus procStatus;
- private ConcurrentHashMap<String, Double> metricsMap;
- private MetricRegistry metricRegistry;
- private MetricsService metricsService;
- private ReportingContext context;
- private ReportingInitializationContext initContext;
- private ConfigurationContext configurationContext;
- private volatile JmxJvmMetrics virtualMachineMetrics;
-
- @BeforeEach
- public void setup() {
- initProcessGroupStatus();
- initProcessorStatuses();
- initContexts();
- }
-
- private void initContexts() {
- configurationContext = mock(ConfigurationContext.class);
- context = mock(ReportingContext.class);
- when(context.getProperty(DataDogReportingTask.ENVIRONMENT))
- .thenReturn(new MockPropertyValue("dev", null));
- when(context.getProperty(DataDogReportingTask.METRICS_PREFIX))
- .thenReturn(new MockPropertyValue("nifi", null));
- when(context.getProperty(DataDogReportingTask.API_KEY))
- .thenReturn(new MockPropertyValue("agent", null));
- when(context.getProperty(DataDogReportingTask.DATADOG_TRANSPORT))
- .thenReturn(new MockPropertyValue("DataDog Agent", null));
- EventAccess eventAccess = mock(EventAccess.class);
- when(eventAccess.getControllerStatus()).thenReturn(status);
- when(context.getEventAccess()).thenReturn(eventAccess);
-
- initContext = mock(ReportingInitializationContext.class);
-
when(initContext.getIdentifier()).thenReturn(UUID.randomUUID().toString());
- when(initContext.getLogger()).thenReturn(new MockComponentLog("id",
"TestDataDogReportingTask"));
- metricsMap = new ConcurrentHashMap<>();
- metricRegistry = mock(MetricRegistry.class);
- virtualMachineMetrics = JmxJvmMetrics.getInstance();
- metricsService = mock(MetricsService.class);
- }
-
- @Test
- public void testOnTrigger() throws InitializationException {
- DataDogReportingTask dataDogReportingTask = new
TestableDataDogReportingTask();
- dataDogReportingTask.initialize(initContext);
- dataDogReportingTask.setup(configurationContext);
- dataDogReportingTask.onTrigger(context);
-
- verify(metricsService, atLeast(1)).getProcessorMetrics(any());
- verify(metricsService, atLeast(1)).getJVMMetrics(any());
- }
-
- @Test
- public void testUpdateMetricsProcessor() throws InitializationException {
- MetricsService ms = new MetricsService();
- Map<String, Double> processorMetrics =
ms.getProcessorMetrics(procStatus);
- Map<String, String> tagsMap = Collections.singletonMap("env", "test");
- DataDogReportingTask dataDogReportingTask = new
TestableDataDogReportingTask();
- dataDogReportingTask.initialize(initContext);
- dataDogReportingTask.setup(configurationContext);
- dataDogReportingTask.updateMetrics(processorMetrics, tagsMap);
-
-
verify(metricRegistry).register(eq("nifi.FlowFilesReceivedLast5Minutes"),
any());
- verify(metricRegistry).register(eq("nifi.ActiveThreads"), any());
- verify(metricRegistry).register(eq("nifi.BytesWrittenLast5Minutes"),
any());
- verify(metricRegistry).register(eq("nifi.BytesReadLast5Minutes"),
any());
- verify(metricRegistry).register(eq("nifi.FlowFilesSentLast5Minutes"),
any());
- }
-
- @Test
- public void testUpdateMetricsJVM() throws InitializationException {
- MetricsService ms = new MetricsService();
- Map<String, Double> processorMetrics =
ms.getJVMMetrics(virtualMachineMetrics);
- Map<String, String> tagsMap = Collections.singletonMap("env", "test");
-
- DataDogReportingTask dataDogReportingTask = new
TestableDataDogReportingTask();
- dataDogReportingTask.initialize(initContext);
- dataDogReportingTask.setup(configurationContext);
-
- dataDogReportingTask.updateMetrics(processorMetrics, tagsMap);
- verify(metricRegistry).register(eq("nifi.jvm.heap_usage"), any());
- verify(metricRegistry).register(eq("nifi.jvm.thread_count"), any());
-
verify(metricRegistry).register(eq("nifi.jvm.thread_states.terminated"), any());
- verify(metricRegistry).register(eq("nifi.jvm.heap_used"), any());
- verify(metricRegistry).register(eq("nifi.jvm.thread_states.runnable"),
any());
-
verify(metricRegistry).register(eq("nifi.jvm.thread_states.timed_waiting"),
any());
- verify(metricRegistry).register(eq("nifi.jvm.uptime"), any());
- verify(metricRegistry).register(eq("nifi.jvm.daemon_thread_count"),
any());
- verify(metricRegistry).register(eq("nifi.jvm.file_descriptor_usage"),
any());
- verify(metricRegistry).register(eq("nifi.jvm.thread_states.blocked"),
any());
- }
-
- private void initProcessGroupStatus() {
- 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);
- status.setInputCount(2);
- status.setOutputCount(4);
- }
-
- private void initProcessorStatuses() {
- procStatus = new ProcessorStatus();
- procStatus.setProcessingNanos(123456789);
- procStatus.setInputCount(2);
- procStatus.setOutputCount(4);
- procStatus.setActiveThreadCount(6);
- procStatus.setBytesSent(1256);
- procStatus.setName("sampleProcessor");
- Collection<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- ProcessGroupStatus groupStatus = new ProcessGroupStatus();
- groupStatus.setProcessorStatus(processorStatuses);
-
- Collection<ProcessGroupStatus> groupStatuses = new ArrayList<>();
- groupStatuses.add(groupStatus);
- status.setProcessGroupStatus(groupStatuses);
- }
-
- private class TestableDataDogReportingTask extends DataDogReportingTask {
- @Override
- protected MetricsService getMetricsService() {
- return metricsService;
- }
-
- @Override
- protected DDMetricRegistryBuilder getMetricRegistryBuilder() {
- return new DDMetricRegistryBuilder();
- }
-
- @Override
- protected MetricRegistry getMetricRegistry() {
- return metricRegistry;
- }
-
- @Override
- protected ConcurrentHashMap<String, Double> getMetricsMap() {
- return metricsMap;
- }
-
- }
-}
diff --git
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
b/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
deleted file mode 100644
index 9f91d8f251..0000000000
---
a/nifi-extension-bundles/nifi-datadog-bundle/nifi-datadog-reporting-task/src/test/java/org/apache/nifi/reporting/datadog/TestMetricsService.java
+++ /dev/null
@@ -1,111 +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.datadog;
-
-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.reporting.datadog.metrics.MetricNames;
-import org.apache.nifi.reporting.datadog.metrics.MetricsService;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class TestMetricsService {
-
- private ProcessGroupStatus status;
- private MetricsService metricsService;
-
- @BeforeEach
- public void init() {
- status = new ProcessGroupStatus();
- metricsService = new MetricsService();
- 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);
- }
-
- //test group status metric retrieving
- @Test
- public void testGetProcessGroupStatusMetrics() {
- ProcessorStatus procStatus = new ProcessorStatus();
- List<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- final Map<String, Double> metrics =
metricsService.getDataFlowMetrics(status);
-
- 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));
- }
-
- //test processor status metric retrieving
- @Test
- public void testGetProcessorGroupStatusMetrics() {
- ProcessorStatus procStatus = new ProcessorStatus();
- List<ProcessorStatus> processorStatuses = new ArrayList<>();
- processorStatuses.add(procStatus);
- status.setProcessorStatus(processorStatuses);
-
- final Map<String, Double> metrics =
metricsService.getProcessorMetrics(procStatus);
-
- assertTrue(metrics.containsKey(MetricNames.BYTES_READ));
- assertTrue(metrics.containsKey(MetricNames.BYTES_WRITTEN));
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_RECEIVED));
- assertTrue(metrics.containsKey(MetricNames.FLOW_FILES_SENT));
- assertTrue(metrics.containsKey(MetricNames.ACTIVE_THREADS));
- }
-
- //test JVM status metric retrieving
- @Test
- public void testGetVirtualMachineMetrics() {
- final JmxJvmMetrics virtualMachineMetrics =
JmxJvmMetrics.getInstance();
-
- final Map<String, Double> metrics =
metricsService.getJVMMetrics(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));
- }
-
-}
\ No newline at end of file
diff --git a/nifi-extension-bundles/nifi-datadog-bundle/pom.xml
b/nifi-extension-bundles/nifi-datadog-bundle/pom.xml
deleted file mode 100644
index 6350f44e77..0000000000
--- a/nifi-extension-bundles/nifi-datadog-bundle/pom.xml
+++ /dev/null
@@ -1,30 +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-standard-shared-bom</artifactId>
- <version>2.0.0-SNAPSHOT</version>
-
<relativePath>../nifi-standard-shared-bundle/nifi-standard-shared-bom</relativePath>
- </parent>
- <artifactId>nifi-datadog-bundle</artifactId>
- <packaging>pom</packaging>
- <modules>
- <module>nifi-datadog-reporting-task</module>
- <module>nifi-datadog-nar</module>
- </modules>
-</project>
diff --git a/nifi-extension-bundles/pom.xml b/nifi-extension-bundles/pom.xml
index 73b4291d24..11d0ea8ddf 100755
--- a/nifi-extension-bundles/pom.xml
+++ b/nifi-extension-bundles/pom.xml
@@ -62,7 +62,6 @@
<module>nifi-slack-bundle</module>
<module>nifi-smb-bundle</module>
<module>nifi-snmp-bundle</module>
- <module>nifi-datadog-bundle</module>
<module>nifi-windows-event-log-bundle</module>
<module>nifi-graph-bundle</module>
<module>nifi-email-bundle</module>