Splunk Search

to check the attribute exist and assign the value

Jasmine
Path Finder

If attr.error exist then Error will be attr.error. If attr.error not exist and attr.error.errmsg exist then Error would be attr.error.errmsg.  i have tried the below code. only one case works other case fails. please advise

eval Error=case(NOT attr.error =="*", 'attr.error',NOT attr.error.errmsg =="*", 'attr.error.errmsg')

 

Labels (1)
0 Karma

bowesmana
SplunkTrust
SplunkTrust

What @richgalloway said, but whenever you reference a JSON field containing dots in the right hand side of an eval you MUST wrap the field name in single quotes, i.e. the first suggestion should be

eval Error=case(isnotnull('attr.error'), 'attr.error', 
                isnotnull('attr.error.errmsg'), 'attr.error.errmsg')

but for your solution the coalesce() option would make sense - note there the use of single quotes - always for the right hand side of the eval. 

This applies not just to JSON field names, but any field name that contains non simple characters or field names that start with numbers.

0 Karma

richgalloway
SplunkTrust
SplunkTrust

Check for the existence of a field with the isnotnull() function.

eval Error=case(isnotnull(attr.error), 'attr.error', isnotnull(attr.error.errmsg), 'attr.error.errmsg')

or use the coalesce() function, which does the tests for you and selects the first listed field that is not null.

eval Error=coalesce('attr.error','attr.error.errmsg')

 

---
If this reply helps you, Karma would be appreciated.
0 Karma
Get Updates on the Splunk Community!

Splunk Observability as Code: From Zero to Dashboard

For the details on what Self-Service Observability and Observability as Code is, we have some awesome content ...

[Puzzles] Solve, Learn, Repeat: Character substitutions with Regular Expressions

This challenge was first posted on Slack #puzzles channelFor BORE at .conf23, we had a puzzle question which ...

Shape the Future of Splunk: Join the Product Research Lab!

Join the Splunk Product Research Lab and connect with us in the Slack channel #product-research-lab to get ...