Splunk Search

How to transpose based on regex data to get the counts

kuul13
Explorer

Hi,

I am new to Splunk. I am trying to figure out how to extract count of errors per api calls made for each client.

I have following query that i run :

`index=application_na sourcetype=my_logs:hec source=my_Logger_PROD  retrievePayments* ( returncode=Error OR returncode=Communication_Error) | rex field=message "Message=.* \((?<apiName>\w+?) -" |  lookup My_Client_Mapping client | table ClientName, apiName'

This query parses message to extract the apinames that starts with `retrievePayments`.  And shows this kind of results

ClientName  apiName

Client A          retrievePaymentsA

Client B          retrievePaymentsA

Client C         retrievePaymentsB

Client A         retrievePaymentsB

 

I want to see an output where my wildcard apiName are transposed and show error count for every client. 

Client      retrievePaymentsA    retrievePaymentsB     retrievePaymentsC    retrievePaymentsD

Client A  2                                     5                                             0                                         1

Client B  2                                     2                                             1                                         6

Client C  8                                     3                                             0                                         0

Client D  1                                     0                                            4                                         3

Any help would be appreciated.

Labels (2)
0 Karma
1 Solution

bowesmana
SplunkTrust
SplunkTrust

@kuul13 

This is a straightforward use of the chart command, see this run anywhere example

| makeresults count=20
| fields - _time
| eval ClientName=mvindex(split("ABC",""), random() % 3)
| mvexpand ClientName
| eval ClientName="Client ".ClientName
| eval apiName="retrievePayments".mvindex(split("ABCD",""), random() % 4)
| chart count over ClientName by apiName

This sets up some example data and then uses the chart command do to the tabling you need.

View solution in original post

0 Karma

bowesmana
SplunkTrust
SplunkTrust

@kuul13 

This is a straightforward use of the chart command, see this run anywhere example

| makeresults count=20
| fields - _time
| eval ClientName=mvindex(split("ABC",""), random() % 3)
| mvexpand ClientName
| eval ClientName="Client ".ClientName
| eval apiName="retrievePayments".mvindex(split("ABCD",""), random() % 4)
| chart count over ClientName by apiName

This sets up some example data and then uses the chart command do to the tabling you need.

0 Karma
Get Updates on the Splunk Community!

[Puzzles] Solve, Learn, Repeat: Dynamic formatting from XML events

This challenge was first posted on Slack #puzzles channelFor a previous puzzle, I needed a set of fixed-length ...

Enter the Agentic Era with Splunk AI Assistant for SPL 1.4

  &#x1f680; Your data just got a serious AI upgrade — are you ready? Say hello to the Agentic Era with the ...

Stronger Security with Federated Search for S3, GCP SQL & Australian Threat ...

Splunk Lantern is a Splunk customer success center that provides advice from Splunk experts on valuable data ...