NIFI-251: Added CapabilityDescription and Tags annotations to reporting tasks and controller services
Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/5161b234 Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/5161b234 Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/5161b234 Branch: refs/heads/annotations Commit: 5161b234a51be5c8694c90b4fa9c8e2991de95f3 Parents: 716e03b Author: Mark Payne <[email protected]> Authored: Thu Jan 22 11:59:53 2015 -0500 Committer: Mark Payne <[email protected]> Committed: Thu Jan 22 11:59:53 2015 -0500 ---------------------------------------------------------------------- .../nifi/controller/ControllerStatusReportingTask.java | 9 ++++++++- .../java/org/apache/nifi/controller/MonitorDiskUsage.java | 7 ++++++- .../main/java/org/apache/nifi/controller/MonitorMemory.java | 8 +++++++- .../nifi/reporting/ganglia/StandardGangliaReporter.java | 7 +++++++ .../distributed/cache/client/DistributedMapCacheClient.java | 5 +++++ .../distributed/cache/client/DistributedSetCacheClient.java | 5 +++++ .../distributed/cache/server/DistributedSetCacheServer.java | 6 +++++- .../cache/server/map/DistributedMapCacheServer.java | 5 +++++ .../java/org/apache/nifi/ssl/StandardSSLContextService.java | 5 +++++ .../main/java/org/apache/nifi/ssl/SSLContextService.java | 5 +++++ 10 files changed, 58 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java index d8fe696..0d0bd3d 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/ControllerStatusReportingTask.java @@ -24,6 +24,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.controller.annotation.OnConfigured; import org.apache.nifi.controller.status.ConnectionStatus; @@ -32,10 +34,15 @@ import org.apache.nifi.controller.status.ProcessorStatus; import org.apache.nifi.reporting.AbstractReportingTask; import org.apache.nifi.reporting.ReportingContext; import org.apache.nifi.util.FormatUtils; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Tags({"stats", "log"}) +@CapabilityDescription("Logs the 5-minute stats that are shown in the NiFi Summary Page for Processors and Connections, as" + + " well optionally logging the deltas between the previous iteration and the current iteration. Processors' stats are" + + " logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Processors logger, while Connections' stats are" + + " logged using the org.apache.nifi.controller.ControllerStatusReportingTask.Connections logger. These can be configured" + + " in the NiFi logging configuration to log to different files, if desired.") public class ControllerStatusReportingTask extends AbstractReportingTask { public static final PropertyDescriptor SHOW_DELTAS = new PropertyDescriptor.Builder() http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java index 7de8f82..f2644b5 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorDiskUsage.java @@ -24,6 +24,8 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.processor.util.StandardValidators; import org.apache.nifi.reporting.AbstractReportingTask; @@ -32,10 +34,13 @@ import org.apache.nifi.reporting.ReportingContext; import org.apache.nifi.reporting.Severity; import org.apache.nifi.util.FormatUtils; import org.apache.nifi.util.NiFiProperties; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Tags({"disk", "storage", "warning", "monitoring", "repo"}) +@CapabilityDescription("Checks the amount of storage space available for the Content Repository and FlowFile Repository" + + " and warns (via a log message and a System-Level Bulletin) if the partition on which either repository exceeds" + + " some configurable threshold of storage space") public class MonitorDiskUsage extends AbstractReportingTask { private static final Logger logger = LoggerFactory.getLogger(MonitorDiskUsage.class); http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java index 44ed340..70ebbf3 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/controller/MonitorMemory.java @@ -16,7 +16,10 @@ */ package org.apache.nifi.controller; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ConfigurationContext; + import java.lang.management.GarbageCollectorMXBean; import java.lang.management.ManagementFactory; import java.lang.management.MemoryPoolMXBean; @@ -40,7 +43,6 @@ import org.apache.nifi.reporting.ReportingContext; import org.apache.nifi.reporting.ReportingInitializationContext; import org.apache.nifi.reporting.Severity; import org.apache.nifi.util.FormatUtils; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -86,6 +88,10 @@ import org.slf4j.LoggerFactory; * </li> * </ul> */ +@Tags({"monitor", "memory", "heap", "jvm", "gc", "garbage collection", "warning"}) +@CapabilityDescription("Checks the amount of Java Heap available in the JVM for a particular JVM Memory Pool. If the" + + " amount of space used exceeds some configurable threshold, will warn (via a log message and System-Level Bulletin)" + + " that the memory pool is exceeding this threshold.") public class MonitorMemory extends AbstractReportingTask { public static final PropertyDescriptor MEMORY_POOL_PROPERTY = new PropertyDescriptor.Builder() http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java index 2b62e60..048abd8 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java +++ b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-reporting-tasks/src/main/java/org/apache/nifi/reporting/ganglia/StandardGangliaReporter.java @@ -24,6 +24,8 @@ import java.util.concurrent.atomic.AtomicReference; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.controller.annotation.OnConfigured; @@ -44,6 +46,11 @@ import com.yammer.metrics.reporting.GangliaReporter; * to the Ganglia server and optionally allows a "port" property (default * otherwise is 8649) */ +@Tags({"ganglia", "stats"}) +@CapabilityDescription("Reports metrics to Ganglia so that Ganglia can be used for external monitoring of the application. Metrics" + + " reported include JVM Metrics (optional); the following 5-minute NiFi statistics: FlowFiles Received, Bytes Received," + + " FlowFiles Sent, Bytes Sent, Bytes Read, Bytes Written, Total Task Duration; and the current values for" + + " FlowFiles Queued, Bytes Queued, and number of Active Threads.") public class StandardGangliaReporter extends AbstractReportingTask { public static final PropertyDescriptor HOSTNAME = new PropertyDescriptor.Builder() http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java index 5bead8c..8283137 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedMapCacheClient.java @@ -18,6 +18,8 @@ package org.apache.nifi.distributed.cache.client; import java.io.IOException; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ControllerService; /** @@ -25,6 +27,9 @@ import org.apache.nifi.controller.ControllerService; * Distributed Cache that functions similarly to a {@link java.util.Map Map}. * */ +@Tags({"distributed", "client", "cluster", "map", "cache"}) +@CapabilityDescription("Provides the ability to communicate with a DistributedMapCacheServer. This allows " + + "multiple nodes to coordinate state with a single remote entity.") public interface DistributedMapCacheClient extends ControllerService { /** http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java index 12aae3e..534285c 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-client-service-api/src/main/java/org/apache/nifi/distributed/cache/client/DistributedSetCacheClient.java @@ -18,12 +18,17 @@ package org.apache.nifi.distributed.cache.client; import java.io.IOException; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ControllerService; /** * This interface defines an API that can be used for interacting with a * Distributed Cache that functions similarly to a {@link java.util.Set Set}. */ +@Tags({"distributed", "client", "cluster", "set", "cache"}) +@CapabilityDescription("Provides the ability to communicate with a DistributedSetCacheServer. This allows " + + "multiple nodes to coordinate state with a single remote entity.") public interface DistributedSetCacheClient extends ControllerService { /** http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java index 426573f..70e86c4 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/DistributedSetCacheServer.java @@ -20,10 +20,14 @@ import java.io.File; import javax.net.ssl.SSLContext; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.ssl.SSLContextService; import org.apache.nifi.ssl.SSLContextService.ClientAuth; - +@Tags({"distributed", "set", "distinct", "cache", "server"}) +@CapabilityDescription("Provides a set (collection of unique values) cache that can be accessed over a socket. " + + "Interaction with this service is typically accomplished via a DistributedSetCacheClient service.") public class DistributedSetCacheServer extends DistributedCacheServer { @Override http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java index 920529d..6c62849 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-distributed-cache-services-bundle/nifi-distributed-cache-server/src/main/java/org/apache/nifi/distributed/cache/server/map/DistributedMapCacheServer.java @@ -20,6 +20,8 @@ import java.io.File; import javax.net.ssl.SSLContext; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ConfigurationContext; import org.apache.nifi.distributed.cache.server.CacheServer; import org.apache.nifi.distributed.cache.server.DistributedCacheServer; @@ -27,6 +29,9 @@ import org.apache.nifi.distributed.cache.server.EvictionPolicy; import org.apache.nifi.ssl.SSLContextService; import org.apache.nifi.ssl.SSLContextService.ClientAuth; +@Tags({"distributed", "cluster", "map", "cache", "server", "key/value"}) +@CapabilityDescription("Provides a map (key/value) cache that can be accessed over a socket. Interaction with this service" + + " is typically accomplished via a DistributedMapCacheClient service.") public class DistributedMapCacheServer extends DistributedCacheServer { @Override http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java index 68f83d4..ae2e19c 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-bundle/nifi-ssl-context-service/src/main/java/org/apache/nifi/ssl/StandardSSLContextService.java @@ -26,6 +26,8 @@ import java.util.Map; import javax.net.ssl.SSLContext; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.annotation.lifecycle.OnEnabled; import org.apache.nifi.components.PropertyDescriptor; import org.apache.nifi.components.ValidationContext; @@ -40,6 +42,9 @@ import org.apache.nifi.security.util.CertificateUtils; import org.apache.nifi.security.util.KeystoreType; import org.apache.nifi.security.util.SslContextFactory; +@Tags({"ssl", "secure", "certificate", "keystore", "truststore", "jks", "p12", "pkcs12", "pkcs"}) +@CapabilityDescription("Standard implementation of the SSLContextService. Provides the ability to configure " + + "keystore and/or truststore properties once and reuse that configuration throughout the application") public class StandardSSLContextService extends AbstractControllerService implements SSLContextService { public static final String STORE_TYPE_JKS = "JKS"; http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/5161b234/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java index 7c71a8e..b2e3b76 100644 --- a/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java +++ b/nifi/nifi-nar-bundles/nifi-standard-services/nifi-ssl-context-service-api/src/main/java/org/apache/nifi/ssl/SSLContextService.java @@ -18,6 +18,8 @@ package org.apache.nifi.ssl; import javax.net.ssl.SSLContext; +import org.apache.nifi.annotation.documentation.CapabilityDescription; +import org.apache.nifi.annotation.documentation.Tags; import org.apache.nifi.controller.ControllerService; import org.apache.nifi.processor.exception.ProcessException; @@ -25,6 +27,9 @@ import org.apache.nifi.processor.exception.ProcessException; * Definition for SSLContextService. * */ +@Tags({"ssl", "secure", "certificate", "keystore", "truststore", "jks", "p12", "pkcs12", "pkcs"}) +@CapabilityDescription("Provides the ability to configure keystore and/or truststore properties once and reuse " + + "that configuration throughout the application") public interface SSLContextService extends ControllerService { public static enum ClientAuth {
