Reports metrics in Prometheus format by creating a /metrics HTTP(S) endpoint which can be used for external monitoring of the application. The reporting task reports a set of metrics regarding the JVM (optional) and the NiFi instance. Note that if the underlying Jetty server (i.e. the Prometheus endpoint) cannot be started (for example if two PrometheusReportingTask instances are started on the same port), this may cause a delay in shutting down NiFi while it waits for the server resources to be cleaned up.


reporting, prometheus, metrics, time series data


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.

Display NameAPI NameDefault ValueAllowable ValuesDescription
Prometheus Metrics Endpoint Portprometheus-reporting-task-metrics-endpoint-port9092The Port where prometheus metrics can be accessed
Supports Expression Language: true (will be evaluated using variable registry only)
Instance IDprometheus-reporting-task-instance-id${hostname(true)}Id of this NiFi instance to be included in the metrics sent to Prometheus
Supports Expression Language: true (will be evaluated using variable registry only)
Metrics Reporting Strategyprometheus-reporting-task-metrics-strategyAll Components
  • Root Process Group Send rollup metrics for the entire root process group
  • All Process Groups Send metrics for each process group
  • All Components Send metrics for each component in the system, to include processors, connections, controller services, etc.
The granularity on which to report metrics. Options include only the root process group, all process groups, or all components
Send JVM metricsprometheus-reporting-task-metrics-send-jvmfalse
  • true
  • false
Send JVM metrics in addition to the NiFi metrics
SSL Context Serviceprometheus-reporting-task-ssl-contextController Service API:
Implementation: StandardRestrictedSSLContextService
The SSL Context Service to use in order to secure the server. If specified, the server willaccept only HTTPS requests; otherwise, the server will accept only HTTP requests
Client Authenticationprometheus-reporting-task-client-authNo Authentication
  • No Authentication ReportingTask will not authenticate clients. Anyone can communicate with this ReportingTask anonymously
  • Want Authentication ReportingTask will try to verify the client but if unable to verify will allow the client to communicate anonymously
  • Need Authentication ReportingTask will reject communications from any client unless the client provides a certificate that is trusted by the TrustStorespecified in the SSL Context Service
Specifies whether or not the Reporting Task should authenticate clients. This value is ignored if the <SSL Context Service> Property is not specified or the SSL Context provided uses only a KeyStore and not a TrustStore.

State management:

This component does not store state.


This component is not restricted.

System Resource Considerations:

None specified.