Description:

Publishes metrics from NiFi to Ambari Metrics Service (AMS). Due to how the Ambari Metrics Service works, this reporting task should be scheduled to run every 60 seconds. Each iteration it will send the metrics from the previous iteration, and calculate the current metrics to be sent on next iteration. Scheduling this reporting task at a frequency other than 60 seconds may produce unexpected results.

Tags:

reporting, ambari, metrics

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, and whether a property supports the NiFi Expression Language.

Name Default Value Allowable Values Description
Metrics Collector URL http://localhost:6188/ws/v1/timeline/metrics The URL of the Ambari Metrics Collector Service
Supports Expression Language: true
Application ID nifi The Application ID to be included in the metrics sent to Ambari
Supports Expression Language: true
Hostname ${hostname(true)} The Hostname of this NiFi instance to be included in the metrics sent to Ambari
Supports Expression Language: true

AmbariReportingTask

This ReportingTask sends the following metrics to Ambari:

  • FlowFilesReceivedLast5Minutes
  • BytesReceivedLast5Minutes
  • FlowFilesSentLast5Minutes
  • BytesSentLast5Minutes
  • FlowFilesQueued
  • BytesQueued
  • BytesReadLast5Minutes
  • BytesWrittenLast5Minutes
  • ActiveThreads
  • TotalTaskDurationSeconds
  • jvm.uptime
  • jvm.heap_used
  • jvm.heap_usage
  • jvm.non_heap_usage
  • jvm.thread_states.runnable
  • jvm.thread_states.blocked
  • jvm.thread_states.timed_waiting
  • jvm.thread_states.terminated
  • jvm.thread_count
  • jvm.daemon_thread_count
  • jvm.file_descriptor_usage
  • jvm.gc.runs
  • jvm.gc.time

In order to make use of these metrics in Ambari, a NIFI service must be created and installed in Ambari. Please consult the Ambari and NiFi documentation for further details.