Splunk Search

Rex in Case command?

ad_no1
Engager

Hi All

In the logs there are multiple Oracle codes with different reasons e.g.

Product Mapping Error ORA-20030: PKG_PRODUCTMAPPING.Usp_Getsyscodesforprocodes failed while checking if list of inputted pro_codes have all successfully been mapped. For network the following pro_codes were not mapped: A100036;

Product Mapping Error ORA-20029: PKG_PRODUCTMAPPING.Setdownstreammapping failed while checking for more than one possible sys_code mapping for a given pro_code (see sys_product_mapping for pro_code = D102124).

Product Mapping Error ORA-20027: PKG_PRODUCTMAPPING.Setdownstreammapping failed while checking list of PRO_CODE(s) for effective_date of 21-Apr-2013 00:00. List of products that don't have a status of Live for NEW customers: D102683(Withdrawn);

Is there a way to extract the code (A100036, D102124, D102683) depending on the Oracle error code?

I've been trying the following but getting an error saying "Error in 'eval' command: The expression is malformed. Expected )".

eval product_code=case( oracle_error_code=="ORA-20027", rex field=_raw "customers: (?<"product_code1.*>)(Withdrawn);" )

Tags (3)

lguinn2
Legend

You can't put just any command into an eval statement - you can only use the eval functions.

Also, you seem to be trying to do this in an "if then else" in a procedural kind of way. You need to rethink that with Splunk.

Try this instead

rex field=_raw "customers:\s+(?<product_code>.*?)\("
| rex field=_raw "pro_codes were not mapped:\s+(?<product_code>.*?)\;"
| rex field=_raw "pro_codes\s+= \s+(?<product_code>.*?)\)"

Splunk will only create the product_code field when the event matches the regular expression; each event will (hopefully) only match one of them.

Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Persistent Queue at TcpOut — One of Splunk's Most Practical Features

Splunk introduced persistent queueing at the tcpout layer as one of the most practical resilience features in ...

Build resilience for the agentic era: Join us at Splunk Go San Jose

AI is changing how organizations build, operate, and secure digital services. As teams adopt AI agents and ...

Manage Edge Processor pipelines end to end with APIs

This guide uses the Data Management APIs to create an Edge Processor, onboard one instance, deploy a pipeline ...