@adnankhan5133 you are performing too many preprocessing and filtering of data after pulling from index and before your stats command. Which will impact performance of your query. Also you are performing eval on string time field with timezone adjustment by 4 hours. If your data is getting indexed with wrong timestamp identification you should handle timestamp extraction and timezone adjustment while indexing the data (not in all of your search time SPL which impacts performance). Please try the following search and confirm whether it matches your expectation. 1. I have _time calculated based on Timestamp string time field, however, you should handle this while indexing of data. 2. I have filtered only three combination of Verb, Transaction Name and Application Name from your data so that there is no need to pull unwanted data from index and filter later. 3. I have used timechart to create empty buckets of time using calculated key field which is built by combining Verb, Transaction Name and Application Name. 4. Finally used transpose to reverse row data as column and vice versa. (Epoch time is converted String Time of format YYYY-mm-dd before transpose so that it shows up properly as column). Keep adding one pipe at a time to understand what each step is doing. index=test_index_1 sourcetype=test_sourcetype_2 (Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1") OR (Transaction Name'="Transaction2" AND 'Application Name'="App2") OR (Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2)
| eval _time=strptime(Timestamp, "%Y-%m-%dT%H:%M:%S.%3QZ")-14400
| eval key=Verb."|".'Transaction Name'."|".'Application Name'
| timechart span=1d count('Status Code') as count by key
| eval service_id=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "ID1",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "ID2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "ID3")
| eval Priority=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "2",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "1")
| eval service_area=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "Area1",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "Area2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "Member")
| eval Time=strftime(_time,"%Y-%m-%d")
| fields - _*
| transpose 0 header_field="Time" column_name=key
| eval key=split(key,"|"), Verb=mvindex(key,0), "Transaction Name"=mvindex(key,1), "Application Name"=mvindex(key,2)
| fields - key
| fields Verb "Transaction Name" "Application Name" * Following is a run anywhere example based on sample data provided: | makeresults
| eval Timestamp=strftime(_time,"%Y-%m-%dT%H:%M:%S.%3QZ")
| eval data="Verb=\"GET\",\"Transaction Name\"=\"Transaction1\",\"Application Name\"=\"APP1\";Verb=\"GET\",\"Transaction Name\"=\"Transaction2\",\"Application Name\"=\"App2\";Verb=\"PUT\",\"Transaction Name\"=\"Transaction2\",\"Application Name\"=\"App2\""
| makemv data delim=";"
| mvexpand data
| rename data as _raw
| extract pairdelim="," kvdelim="="
| eval "Status Code"=random()
| rename "Transaction_Name" as "Transaction Name","Application_Name" as "Application Name"
| eval _time=strptime(Timestamp, "%Y-%m-%dT%H:%M:%S.%3QZ")-14400
| eval key=Verb."|".'Transaction Name'."|".'Application Name'
| timechart span=1d count('Status Code') as count by key
| eval service_id=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "ID1",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "ID2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "ID3")
| eval Priority=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "2",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "1")
| eval service_area=case(Verb="GET" AND 'Transaction Name'="Transaction1" AND 'Application Name'="APP1", "Area1",
Verb="GET" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "Area2",
Verb="PUT" AND 'Transaction Name'="Transaction2" AND 'Application Name'="App2", "Member")
| eval Time=strftime(_time,"%Y-%m-%d")
| fields - _*
| transpose 0 header_field="Time" column_name=key
| eval key=split(key,"|"), Verb=mvindex(key,0), "Transaction Name"=mvindex(key,1), "Application Name"=mvindex(key,2)
| fields - key
| fields Verb "Transaction Name" "Application Name" *
... View more