Dashboards & Visualizations

timechart 'distinct_count' combined with 'latest' function

jbllog
Explorer

Hello, 

I would like to create timechart that counts number of tests with different statuses (e.g. statuses 'OK', 'ERROR', 'WARN' etc) for last 30 days (per each day). The problem is that it should take only latest log with status per test (e.g. I have Login test (id 151), it has couple events/logs with different statuses, and I would like to take for that test last log/event with latest status. 

I have a problem to combine 'latest' and 'distinct_count' with timechart. 

When I do following search, I get duplicates of logs for test (e.g. I should have every day count of 62 (tests) for all statuses): 

basesearch
| timechart span=1d distinct_count(test) as tests by status


chrome_zQzO00MHWQ.pnge.g. on day 2025-05-26 test 'Login test (id 151)' have one event with status 'OK' and another one with status 'Blad', and the duplicate is shown here.


When I want to combine 'latest' to timechart I get distinct_count results only for last day:

basesearch
| stats latest(status) as statuses latest(test) as tests latest(_time) as myTime by test
| eval _time=myTime 
| timechart span=1d distinct_count(tests) by statuses

 

chrome_m3MOr3Gn1e.png

I appreciate help how to combine timechart, distinct_count and latest all together.

 

Labels (1)
0 Karma
1 Solution

richgalloway
SplunkTrust
SplunkTrust

You almost had it.  Use the bin and stats commands to group events by day and get the latest status.  Then timechart will give the counts.

basesearch
| bin span=1d _time
| stats latest(status) as status by _time, test
| timechart span=1d distinct_count(test) by status

 

---
If this reply helps you, Karma would be appreciated.

View solution in original post

richgalloway
SplunkTrust
SplunkTrust

You almost had it.  Use the bin and stats commands to group events by day and get the latest status.  Then timechart will give the counts.

basesearch
| bin span=1d _time
| stats latest(status) as status by _time, test
| timechart span=1d distinct_count(test) by status

 

---
If this reply helps you, Karma would be appreciated.

jbllog
Explorer

Thank you for the response 🙂 I tried your solution but still have results only for one day. 

chrome_iUgbbE3R24.png
I wonder maybe this line may affect the unwanted one-day results: 

status latest(test) as tests latest(_time) as _time

maybe I shouldn't use 'latest' agg function for 'test' and '_time'? But I don't know how to pass these values in a different way to 'timechart' function.

0 Karma

richgalloway
SplunkTrust
SplunkTrust

Please try my updated query.

---
If this reply helps you, Karma would be appreciated.
0 Karma

jbllog
Explorer

It works! 🙂 Thank you for the solution :)! 

0 Karma
Career Survey
First 500 qualified respondents will receive a $20 gift card! Tell us about your professional Splunk journey.

Can’t make it to .conf25? Join us online!

Get Updates on the Splunk Community!

What Is Splunk? Here’s What You Can Do with Splunk

Hey Splunk Community, we know you know Splunk. You likely leverage its unparalleled ability to ingest, index, ...

Level Up Your .conf25: Splunk Arcade Comes to Boston

With .conf25 right around the corner in Boston, there’s a lot to look forward to — inspiring keynotes, ...

Manual Instrumentation with Splunk Observability Cloud: How to Instrument Frontend ...

Although it might seem daunting, as we’ve seen in this series, manual instrumentation can be straightforward ...