Splunk Search

How to create a calculated field eval coalesce follow by case statement?

ejwade
Contributor

I'm trying to create a calculated field (eval) that will coalesce a bunch of username fields, then perform match() and replace() functions within a case statement.

Here's a scenario:

  • Possible user fields: UserName, username, User_ID
  • User values need domain removed (e.g., "user@domain.com" or "ad\user" needs to be "user").

Here is how it can be done in two evals (I newlined and indented each case for readability):

 

| eval user_coalesced = coalesce(UserName, username, User_ID)
| eval user = case(
  match(user_coalesced, ".*@.*"), replace(user_coalesced, "@.*", ""),
  match(user_coalesced, "^ad\\\\"), replace(user_coalesced, "^ad\\\\", ""),
  true(), user
)

 

 Any ideas on how I can get this down to one? I thought about putting the coalesce() into each case, but that seems inefficient.

Labels (1)
Tags (2)
0 Karma
Get Updates on the Splunk Community!

Announcing Scheduled Export GA for Dashboard Studio

We're excited to announce the general availability of Scheduled Export for Dashboard Studio. Starting in ...

Extending Observability Content to Splunk Cloud

Watch Now!   In this Extending Observability Content to Splunk Cloud Tech Talk, you'll see how to leverage ...

More Control Over Your Monitoring Costs with Archived Metrics GA in US-AWS!

What if there was a way you could keep all the metrics data you need while saving on storage costs?This is now ...