Splunk Search

How extract dynamic json keys recursively and condition based add data to table?

pradiprwt
New Member

Hi,

I am new to Splunk and I have been trying to generate report table format using json data, I am able to spath and output the value to the table. But There some object in json which is unpredictable those I want to get by using parent key and append the value based on condition. Below is the sample json event

{
    "tag": "salt/job/20180322112723081888/ret/minion1",
    "data": {
        "fun_args": ["install.centos7.soft", {
            "test": true
        }],
        "jid": "20180322112723081888",
        "return": {
            "file_|-/etc/resolve.conf_|-/etc/resolve.conf_|-append": {
                "comment": "File /etc/resolve.conf is set to be updated",
                "pchanges": {},
                "name": "/etc/resolve.conf",
                "start_time": "11:27:33.462182",
                "result": null,
                "duration": 3.232,
                "__run_num__": 27,
                "__sls__": "install.centos7.resolve",
                "changes": {
                    "diff": "--- \n\n+++ \n\n@@ -0,0 +1 @@\n\n+-a nameserver 8.8.8.8"
                },
                "__id__": "/etc/resolve.conf"
            },
            "pkg_|-remove_rservices_|-remove_rservices_|-purged": {
                "comment": "All specified packages are already absent",
                "name": "remove_rservices",
                "start_time": "11:27:33.229081",
                "result": true,
                "duration": 0.608,
                "__run_num__": 7,
                "__sls__": "install.centos7.soft",
                "changes": {},
                "__id__": "remove_rservices"
            }
        },
        "retcode": 0,
        "success": true,
        "cmd": "_return",
        "_stamp": "2018-03-22T11:27:33.945590",
        "fun": "state.apply",
        "id": "minion-1",
        "out": "highstate"
    }
}

In this json I want to extract each object from return key, there is condition if object key changes don't have vale go for next object or if changes have value append "sls" value in table.
Below is the target sample table:

minion              state                                  changes
-----------------------------------------------------------------------------------------
minion-1          install.centos7.soft          install.centos7.resolve

Changes can be multi value for single minion

Can anyone please suggest me how I can achieve this

Thanks

0 Karma

jagadeeshm
Contributor

Did you ever find an answer for your question?

0 Karma
Got questions? Get answers!

Join the Splunk Community Slack to learn, troubleshoot, and make connections with fellow Splunk practitioners in real time!

Meet up IRL or virtually!

Join Splunk User Groups to connect and learn in-person by region or remotely by topic or industry.

Get Updates on the Splunk Community!

Build the Future of Agentic AI: Join the Splunk Agentic Ops Hackathon

AI is changing how teams investigate incidents, detect threats, automate workflows, and build intelligent ...

[Puzzles] Solve, Learn, Repeat: Character substitutions with Regular Expressions

This challenge was first posted on Slack #puzzles channelFor BORE at .conf23, we had a puzzle question which ...

Splunk Community Badges!

  Hey everyone! Ready to earn some serious bragging rights in the community? Along with our existing badges ...