I would recommend using the site to site task instead of your own because
it will give you a very scalable way to asynchronously handle your
provenance tracking. There's nothing preventing you from having the
tracking instance of NiFi be responsible for publishing the events to your
tracking system. A lot of people do this with Elastic and Kibana with very
good results.

On Fri, Oct 18, 2019 at 12:01 PM Tim Dean <tim.d...@gmail.com> wrote:

> I would like to implement some custom monitoring logic that captures
> certain information from the provenance repository. It would be similar in
> some ways to the existing SiteToSiteProvenanceReporting task, but it will
> not be sending information to another NiFi node but instead sending things
> to an in-house tracking service that we use.
>
> There is a little information about writing custom reporting tasks in the
> NiFi developer documentation, but it’s pretty limited in what it covers. I
> want to make sure I capture all the events that come in, and I want to be
> resilient to situations when the NiFi node is rebooted, or certain
> components are stopped temporarily, etc.
>
> To get an idea of how to best accomplish this I’ve been looking at the
> source code for SiteToSiteProvenanceReportingTask on GitHub. It appears to
> push a delegate a lot of the details of event capturing to the
> org.apache.nifi.reporting.util.provenance.ProvenanceEventConsumer class.
> I’ve poked around that class to see what it does, and I think I could use
> it In my own custom reporting class to make things easier. However, that
> class doesn’t seem to be documented publicly anywhere, and isn’t mentioned
> in the developer guide. I am concerned that it might be necessary to treat
> this as a private class that may change from release to release.
>
> How would you recommend that I proceed to create my own provenance event
> reporting task? Should I mimic SiteToSiteProvenanceReportingTask and built
> it on top of the ProvenanceEventConsumer class? Should I instead pull out
> the parts of ProvenanceEventConsumer that I need and create my own version
> of that class that I can control?
> Any other approaches I should consider instead of the path I’m heading
> down now?
>
>

Reply via email to