Splunk Search

After renaming an auto-extracted field in Data Model Editor, why am I unable to reference the renamed field when doing a tstats search?

bcronrath
Path Finder

I've tried this with multiple fields now and the same behavior occurs. What I want is simple:

To auto extract a field, and have it rename to something else so that I don't have to constantly pipe in a rename when I do tstats calls against the data model. Based on my understanding, when I set up the data model and give the field a display name, should this not essentially rename the field? Because this does not seem to be what it does, and in fact I have no idea where the Display Name ever comes into effect. I don't see it showing up anywhere aside from in the data model field list.

For instance, let's say I have a field "dimension" in a source that a data model is pulling in from via the constraints. Now I add this field via Add Attribute -> Auto Extraction and set the rename to instead be "status" instead of "dimension". Now, when I try to do a tstats call, it still only recognizes the field if I call it by the name of "dimension". If I try to reference it by "status" I get nothing. So am I misunderstanding what this rename is suppose to be doing, or is there some caveat that prevents my tstats call from recognizing that fields are supposed to be renamed?

0 Karma

rjthibod
Champion

I don't believe display names will work that way. It is my understanding that display names will only automatically appear when you use Pivot instead of tstats.

You could do a look-up into the datamodel definition to match the extracted field name to its matching display name, but that would require so additional sub-search steps. If you wanted to do something like that, here is a macro that could put you on the path of getting that information.

You would invoke the macro in a search as:
| `list_fields_by_datamodel_object("DATAMODELNAME")`

[list_fields_by_datamodel_object(1)]
description = List of all fields in datamodel (arg1)
iseval      = 0
errormsg    = datamodel (arg1) must be a valid datamodel
args        = datamodel
definition  = datamodel $datamodel$ | spath output=foo path=objects{} | mvexpand foo | table foo | spath input=foo path=objectName output=objectName | spath input=foo path=lineage output=lineage | spath input=foo output=fields path=fields{} | mvexpand fields | spath input=fields | table objectName lineage fieldName displayName owner | append [| datamodel $datamodel$ | spath output=foo path=objects{} | mvexpand foo | table foo | spath input=foo path=objectName output=objectName | spath input=foo path=lineage output=lineage | spath input=foo output=fields path=calculations{}.outputFields{} | mvexpand fields | spath input=fields | table objectName lineage fieldName displayName owner ] | eval path = owner.".".fieldName | eval path = "\"".replace(path,"^(BaseEvent\.)(.*)","\2")."\"" | rename fieldName as field
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!

Take Action Automatically on Splunk Alerts with Red Hat Ansible Automation Platform

 Are you ready to revolutionize your IT operations? As digital transformation accelerates, the demand for ...

Calling All Security Pros: Ready to Race Through Boston?

Hey Splunkers, .conf25 is heading to Boston and we’re kicking things off with something bold, competitive, and ...

Beyond Detection: How Splunk and Cisco Integrated Security Platforms Transform ...

Financial services organizations face an impossible equation: maintain 99.9% uptime for mission-critical ...