Splunk Search

How do I use tstats to extract data from a child data set?

andrewtrobec
Motivator

Hello,

I'm trying to use the tstats command within a data model on a data set that has children and grandchildren. Ideally I'd like to be able to use tstats on both the children and grandchildren (in separate searches), but for this post I'd like to focus on the children. Let's say my structure is the following:

data_model
--parent_ds
----child_ds

And let's say we have _time, id, dimension, status, and error as fields. Assuming that parent_ds has no filter on the dimension field, child_ds will have an additional constraint for a specific value of dimension.

I am able to use the tstats command to extract the values from parent_ds with the following search:

| tstats latest(_time) as _time values(parent_ds.status) as status values(parent_ds.error) as error FROM datamodel=data_model.parent_ds BY parent_ds.id

Since I would like to run this same search on child_ds I tried the following:

| tstats latest(_time) as _time values(child_ds.status) as status values(child_ds.error) as error FROM datamodel=data_model.child_ds BY child_ds.id

When doing this I get the following error:

Error in 'DataModelCache': Invalid or unaccelerable root object for datamodel

I've also tried nesting by specifying parent_ds.child_ds.<field> but that doesn't work either.

Is it possible to accomplish what I'm trying to do? If so, could somebody point me in the right direction?

Thank you and best regards,

Andrew

0 Karma
1 Solution

PavelP
Motivator

Hello @andrewtrobec ,

please try to add WHERE nodename=root_dataset.parent_dataset.target_dataset

https://docs.splunk.com/Documentation/Splunk/8.0.3/SearchReference/Tstats

Let me know if it worked

View solution in original post

PavelP
Motivator

Hello @andrewtrobec ,

please try to add WHERE nodename=root_dataset.parent_dataset.target_dataset

https://docs.splunk.com/Documentation/Splunk/8.0.3/SearchReference/Tstats

Let me know if it worked

andrewtrobec
Motivator

@PavelP Thanks so much! I was reading about that parameter, so thanks for reinforcing. This is the working search:

| tstats latest(_time) as _time values(parent_ds.status) as status values(parent_ds.error) as error FROM datamodel=data_model.parent_ds WHERE nodename=parent_ds.child_ds BY parent_ds.id

It's confusing because you always have to extract and group by the parent field, and only in the nodename specify the child (or grandchild). The example (Example 9) in the tstats documentation makes it seem like you don't have to specify the object from which you are extracting...

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 ...