Reporting tasks
Reporting tasks allow you to monitor flow deployments using external applications.
-
If you want to create a reporting task using a custom NAR, you have added a custom NAR to the flow during deployment.
-
You have DFFlowAdmin role for the environment where you want to create the reporting task.
Create a JSON file
To create a reporting task, use the following template:
Replace elements marked [***SOME VALUE***] with actual values
valid in your environment. You can specify additional properties
that may be necessary to your specific use case.
{ "name": "[***REPORTING TASK NAME***]", "type": "[***FULLY QUALIFIED CLASS NAME***]", "properties": { "[***PROPERTY NAME 1***]": "[***PROPERTY VALUE 1***]", "[***PROPERTY NAME 2***]": "[***PROPERTY VALUE 2***]" }, "scheduledState": "[***RUNNING|DISABLED***]", "schedulingPeriod": "[***SCHEDULING PERIOD***]", "schedulingStrategy": "[***TIMER_DRIVEN|CRON_DRIVEN***]" }
To define a schedulingPeriod
that corresponds to the
TIMER_DRIVEN
schedulingStrategy
, specify a frequency. For example, "5
min
" or "45 sec
" or "2 hours
".
To define a schedulingPeriod
that corresponds to the
CRON_DRIVEN
schedulingStrategy
specify, for example, "* * * * *
?
"
By setting scheduledState
to RUNNING
, the
task automatically starts upon creation. Otherwise, it remains stopped.
For example:
{ "name": "My Reporting Task", "type": "org.apache.nifi.controller.ControllerStatusReportingTask", "properties": { "Show Deltas": "true", "reporting-granularity": "five-minutes" }, "scheduledState": "RUNNING", "schedulingPeriod": "5 min", "schedulingStrategy": "TIMER_DRIVEN" }
If there is more than one reporting task with the same class name in the
deployment, you can select the required one using a "bundle
", as
the following example shows:
{ "name": "ControllerStatusReportingTask", "type": "org.apache.nifi.controller.ControllerStatusReportingTask", "bundle": { "group": "org.apache.nifi", "artifact": "nifi-standard-nar", "version": "1.23.2.2.3.12.0-7" }, "properties": { "Show Deltas": "true", "reporting-granularity": "five-minutes" }, "scheduledState": "RUNNING", "schedulingPeriod": "5 mins", "schedulingStrategy": "TIMER_DRIVEN" }
Create a reporting task
Assuming you created a file named reporting-task.json with contents similar to one of the above examples, execute the command:
dfworkload create-reporting-task --environment-crn [***ENVIRONMENT CRN***] --deployment-crn [***DEPLOYMENT CRN***] --file-path reporting-task.json
Replace [***ENVIRONMENT CRN***] and [***DEPLOYMENT CRN***] with actual values valid in your environment.
List all reporting tasks
To list existing reporting tasks, use the following command:
dfworkload list-reporting-tasks --environment-crn [***ENVIRONMENT CRN***] --deployment-crn [***DEPLOYMENT CRN***]
Replace [***ENVIRONMENT CRN***] and [***DEPLOYMENT CRN***] with actual values valid in your environment.
Delete a reporting task
To delete a reporting task, use the following command:
dfworkload delete-reporting-task --environment-crn [***ENVIRONMENT CRN***] --deployment-crn [***DEPLOYMENT CRN***] --reporting-task-crn [***REPORTING TASK CRN***]
Replace [***ENVIRONMENT CRN***], [***DEPLOYMENT CRN***], and [***REPORTING TASK CRN***] with actual values valid in your environment.