Dmitry
Dmitry

Reputation: 986

Get only nested JSON in Logstash

How can I get only nested json in Logstash?

{
    "metadata_1":"Meta 1",
    "metadata_2":"Meta 2",
    ...
    "metadata_N":"Meta N",
    "mydata":{
        "name":"User Name 1",
        "surname":"User SurName 1"
    }
}

I want to get only "mydata". All "metadata" must be completely removed from the result. Logstash config:

input {
    stdin { }
}
filter {
    json {
       source => "message"
    }
}
output {
    stdout { codec => rubydebug }
}

Not worked for me:

source => "message"
source => "mydata"
source => "[message][mydata]"

The expected result is ("mydata" as root):

{
    "name":"User Name 1",
    "surname":"User SurName 1"
}

Upvotes: 0

Views: 435

Answers (1)

Alcanzar
Alcanzar

Reputation: 17155

The prune filter should do what you want:

 prune {
   whitelist_names => ["mydata"]
 }

Upvotes: 1

Related Questions