Scott

This sounds pretty darn cool.  Any chance you'd be interested in
kicking out a blog on it?

Thanks

On Tue, Jul 27, 2021 at 9:58 AM scott <[email protected]> wrote:
>
> Matt/all,
> I was able to solve my problem using the QueryNiFiReportingTask with "SELECT 
> * FROM CONNECTION_STATUS WHERE isBackPressureEnabled = true" and the new 
> LoggingRecordSink as you suggested. Everything is working flawlessly now. 
> Thank you again!
>
> Scott
>
> On Wed, Jul 21, 2021 at 5:09 PM Matt Burgess <[email protected]> wrote:
>>
>> Scott,
>>
>> Glad to hear it! Please let me know if you have any questions or if
>> issues arise. One thing I forgot to mention is that I think
>> backpressure prediction is disabled by default due to the extra
>> consumption of CPU to do the regressions, make sure the
>> "nifi.analytics.predict.enabled" property in nifi.properties is set to
>> "true" before starting NiFi.
>>
>> Regards,
>> Matt
>>
>> On Wed, Jul 21, 2021 at 7:21 PM scott <[email protected]> wrote:
>> >
>> > Excellent! Very much appreciate the help and for setting me on the right 
>> > path. I'll give the queryNiFiReportingTask code a try.
>> >
>> > Scott
>> >
>> > On Wed, Jul 21, 2021 at 3:26 PM Matt Burgess <[email protected]> wrote:
>> >>
>> >> Scott et al,
>> >>
>> >> There are a number of options for monitoring flows, including
>> >> backpressure and even backpressure prediction:
>> >>
>> >> 1) The REST API for metrics. As you point out, it's subject to the
>> >> same authz/authn as any other NiFi operation and doesn't sound like it
>> >> will work out for you.
>> >> 2) The Prometheus scrape target via the REST API. The issue would be
>> >> the same as #1 I presume.
>> >> 3) PrometheusReportingTask. This is similar to the REST scrape target
>> >> but isn't subject to the usual NiFi authz/authn stuff, however it does
>> >> support SSL/TLS for a secure solution (and is also a "pull" approach
>> >> despite it being a reporting task)
>> >> 4) QueryNiFiReportingTask. This is not included with the NiFi
>> >> distribution but can be downloaded separately, the latest version
>> >> (1.14.0) is at [1]. I believe this is what Andrew was referring to
>> >> when he mentioned being able to run SQL queries over the information,
>> >> you can do something like "SELECT * FROM CONNECTION_STATUS_PREDICTIONS
>> >> WHERE predictedTimeToBytesBackpressureMillis < 10000". This can be
>> >> done either as a push or pull depending on the Record Sink you choose.
>> >> A SiteToSiteReportingRecordSink, KafkaRecordSink, or LoggingRecordSink
>> >> results in a push (to NiFi, Kafka, or nifi-app.log respectively),
>> >> where a PrometheusRecordSink results in a pull the same as #2 and #3.
>> >> There's even a ScriptedRecordSink where you can write your own script
>> >> to put the results where you want them.
>> >> 5) The other reporting tasks. These have been mentioned frequently in
>> >> this thread so no need for elaboration here :)
>> >>
>> >> Regards,
>> >> Matt
>> >>
>> >> [1] 
>> >> https://repository.apache.org/content/repositories/releases/org/apache/nifi/nifi-sql-reporting-nar/1.14.0/
>> >>
>> >> On Wed, Jul 21, 2021 at 5:58 PM scott <[email protected]> wrote:
>> >> >
>> >> > Great comments all. I agree with the architecture comment about push 
>> >> > monitoring. I've been monitoring applications for more than 2 decades 
>> >> > now, but sometimes you have to work around the limitations of the 
>> >> > situation. It would be really nice if NiFi had this logic built-in, and 
>> >> > frankly I'm surprised it is not yet. I can't be the only one who has 
>> >> > had to deal with queues filling up, causing problems downstream. NiFi 
>> >> > certainly knows that the queues fill up, they change color and execute 
>> >> > back-pressure logic. If it would just do something simple like write a 
>> >> > log/error message to a log file when this happens, I would be good.
>> >> > I have looked at the new metrics and reporting tasks but still haven't 
>> >> > found the right thing to do to get notified when any queue in my 
>> >> > instance fills up. Are there any examples of using them for a similar 
>> >> > task you can share?
>> >> >
>> >> > Thanks,
>> >> > Scott
>> >> >
>> >> > On Wed, Jul 21, 2021 at 11:29 AM [email protected] 
>> >> > <[email protected]> wrote:
>> >> >>
>> >> >> In general, it is a bad architecture to do monitoring via pull 
>> >> >> request. You should always push. I recommend a look at the book "The 
>> >> >> Art of Monitoring" by James Turnbull.
>> >> >>
>> >> >> I also recommend the very good articles by Pierre Villard on the 
>> >> >> subject of NiFi monitoring at 
>> >> >> https://pierrevillard.com/2017/05/11/monitoring-nifi-introduction/.
>> >> >>
>> >> >> Hope this helps.
>> >> >>
>> >> >> Mit freundlichen Grüßen / best regards
>> >> >> Kay-Uwe Moosheimer
>> >> >>
>> >> >> Am 21.07.2021 um 16:45 schrieb Andrew Grande <[email protected]>:
>> >> >>
>> >> >> 
>> >> >> Can't you leverage some of the recent nifi features and basically run 
>> >> >> sql queries over NiFi metrics directly as part of the flow? Then act 
>> >> >> on it with a full flexibility of the flow. Kinda like a push design.
>> >> >>
>> >> >> Andrew
>> >> >>
>> >> >> On Tue, Jul 20, 2021, 2:31 PM scott <[email protected]> wrote:
>> >> >>>
>> >> >>> Hi all,
>> >> >>> I'm trying to setup some monitoring of all queues in my NiFi 
>> >> >>> instance, to catch before queues become full. One solution I am 
>> >> >>> looking at is to use the API, but because I have a secure NiFi that 
>> >> >>> uses LDAP, it seems to require a token that expires in 24 hours or 
>> >> >>> so. I need this to be an automated solution, so that is not going to 
>> >> >>> work. Has anyone else tackled this problem with a secure LDAP enabled 
>> >> >>> cluster?
>> >> >>>
>> >> >>> Thanks,
>> >> >>> Scott

Reply via email to