Good to know - very helpful. Thank you both, Joe W. and Mark P.

On Thu, Feb 15, 2024 at 10:42 AM Joe Witt <joe.w...@gmail.com> wrote:

> This [1] blog seems amazingly appropriate and wow do we need these/any
> such fields we intend to truly honor in a prominent place in the docs.
> Super useful...
>
> [1] https://jameswing.net/nifi/nifi-internal-fields.html
>
> Thanks
>
> On Thu, Feb 15, 2024 at 8:35 AM Mark Payne <marka...@hotmail.com> wrote:
>
>> Jim,
>>
>> You can actually reference “lastQueueDate” in Expression Language. It is
>> formatted as number of milliseconds since epoch.
>>
>> So you might have a RouteOnAttribute that has a property named “old” with
>> a value of:
>> ${lastQueueDate:lt( ${now():minus(10000)} )}
>>
>> So any FlowFile that has been queued for more than 10 seconds would be
>> routed to “old”, anything else to “unmatched”
>>
>> Thanks
>> -Mark
>>
>>
>> On Feb 15, 2024, at 10:18 AM, James McMahon <jsmcmah...@gmail.com> wrote:
>>
>> That would work - what a good suggestion. I'll do that. I can format the
>> resulting number and then RouteOnAttribute by the desired subset of the
>> result.
>> Something like this to set attribute dt.failure:
>>
>> ${now():toNumber():toDate("yyyy-MM-ddHH:mm:ss"):format("yyyyMMddHHmmss","EST")}
>> Then I can effectively route the files.
>> Thank you Jim S.
>>
>> On Thu, Feb 15, 2024 at 9:55 AM Jim Steinebrey <jrsteineb...@gmail.com>
>> wrote:
>>
>>> You could add an UpdateAttribute processor first in the failure path to
>>> add a new attribute which contains the time the error occurred by using the
>>> ${now()} or ${now():toNumber()} expression language function.
>>>
>>> https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#now
>>>
>>> Then later on in the flow you can compare current time to the saved
>>> error time to see how much time has elapsed.
>>>
>>> — Jim
>>>
>>>
>>> On Feb 15, 2024, at 9:44 AM, James McMahon <jsmcmah...@gmail.com> wrote:
>>>
>>> As it turns out lineageStartDate and Queued Duration are very different.
>>> Without being able to get at Queued Duration as an attribute, it appears we
>>> cannot RouteOnAttribute to filter thousands in a queue by anything like
>>> hours they have been in queue.
>>> Why would this be helpful? Let us say we have an InvokeHttp processor
>>> making calls to a REST endpoint. We leave for a weekend and return to find
>>> 5000 files in the Failure queue from this processor. It would be most
>>> helpful to identify the start time and end time of these 5000 failures. We
>>> can't do that reviewing only the first 100 flowfiles in the queue from the
>>> UI.
>>> One can make an assumption that all of these 5000 flowfiles that failed
>>> InvokeHttp share a similar range of lineageStartDate, but that will not
>>> necessarily be true depending on flow complexity.
>>>
>>> On Wed, Feb 14, 2024 at 9:49 AM James McMahon <jsmcmah...@gmail.com>
>>> wrote:
>>>
>>>> What a great workaround, thank you once again Mike. I'll put this in
>>>> and use it now.
>>>> Jim
>>>>
>>>> On Tue, Feb 13, 2024 at 4:41 PM Michael Moser <moser...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hello James,
>>>>>
>>>>> I'm not aware of a way to access Queued Duration using expression
>>>>> language, but you can access the Lineage Duration information.  The 
>>>>> Getting
>>>>> Started Guide mentions both entryDate and lineageStartDate as immutable
>>>>> attributes on all flowfiles.  These are numbers of milliseconds since
>>>>> epoch.  If you need them in a readable format, you can use the format()
>>>>> function.
>>>>>
>>>>> simple examples:
>>>>> ${entryDate} = 1707859943778
>>>>> ${lineageStartDate} = 1707859943778
>>>>> ${lineageStartDate:format("yyyy-MM-dd HH:mm:ss.SSS")} = 2024-02-13
>>>>> 21:32:23.778
>>>>>
>>>>> -- Mike
>>>>>
>>>>>
>>>>> On Mon, Feb 12, 2024 at 11:38 AM James McMahon <jsmcmah...@gmail.com>
>>>>> wrote:
>>>>>
>>>>>> When we examine the contents of a queue through the UI and select a
>>>>>> flowfile from the resulting list, we see FlowFile Details in the Details
>>>>>> tab. Are those key/values accessible from nifi expression language? I 
>>>>>> would
>>>>>> like to access Queued Duration. I have a queue that holds flowfiles with
>>>>>> non-successful return codes for calls to REST services, and I want to 
>>>>>> route
>>>>>> depending on how long these flowfiles have been sitting in my error queue
>>>>>> to isolate the window when the REST service was unavailable.
>>>>>> Thank you for any examples that show how we can access these keys and
>>>>>> values.
>>>>>>
>>>>>
>>>
>>

Reply via email to