Support Questions

Find answers, ask questions, and share your expertise
Announcements
Welcome to the upgraded Community! Read this blog to see What’s New!

Nifi RouteOnAttribute with variable attributes

avatar
New Contributor

Hello,

I have a nifi processor which is receiving data through Syslog RFC5424. When i receive data, i use ParseSyslog5424 processor in order to get all attributes. Some attributes are variables. (in bold)

 

I can get : syslog.structuredData.15C81B70@14506.os or syslog.structuredData.hzhzd@14507.os ….

 

Then, i have configured RouteOnAttribute. For the moment i hard code this :

Value : ${syslog.structuredData.15C81B70@14506.os:equals("linux69")}

Value : ${syslog.structuredData.hzhzd@14507.os:equals("windows")}

 

I would like to know if there is a way to put an expression like :

Value : ${syslog.structuredData.*.os:equals("linux69")}

 

I don't find an easy solution to do this.

 

Thanks.

2 REPLIES 2

avatar
New Contributor

find myself a solution ${anyMatchingAttribute("syslog.structuredData.*.type"):contains('esx')} !

avatar
Explorer

Hi Markushg,

 

When you want to apply condition on any number of attributes based on a pattern match. Then you may consider using anyMatchingAttribute NiFi Function.

 

Here is the link to the documentation:

https://nifi.apache.org/docs/nifi-docs/html/expression-language-guide.html#anyattribute

 

In your case, You may have to do something like as below:

${anyMatchingAttribute("syslog.structuredData*os"):equals('linux69')}

Labels