Hi there, first time requiring help here 
In order to filter some different inputs (actually same filebeat input, but multiple beats/formats are sent),
I achieved to get this following logstash pipeline:
input {
    beats {
        port => "5044"
    }
}
filter {
  if [@metadata][beat] == "apm" {
    if [processor][event] == "sourcemap" {
      mutate {
        add_field => { "[@metadata][index]" => "%{[@metadata][beat]}-%{[@metadata][version]}-%{[processor][event]}" }
      }
    } else {
      mutate {
        add_field => { "[@metadata][index]" => "%{[@metadata][beat]}-%{[@metadata][version]}-%{[processor][event]}-%{+yyyy.MM.dd}" }
      }
    }
  }
  if [@metadata][beat] == "filebeat" {
    mutate {
      add_field => { "[@metadata][index]" => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+yyyy.MM.dd}" }
    }
    if [path] == "/var/log/wblog" {
      dissect { mapping => { "message" => "%{timestamp1->} %{+timestamp1} %{+timestamp1} %{Theatre} %{Product} %{Severity} %{Body}"
        "Body" => "%{1} %{2} %{3} %{4} %{5} %{6} %{7}" }
      }
      kv { source => "Body" }
    }
 }
}
output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "${[@metadata][index]}"
  }
}
The problem is that I only get one index in ES, named ${[@metadata][index]}
I followed the exemple of the documentation on logstash output for apm-server https://www.elastic.co/guide/en/apm/server/master/logstash-output.html
I have no error on APM-Server side, nor Filebeat nor Logstash. I have no clue on what happens, could you please help me ?
I'm fairly new to ELK, maybe it's a rookie error 
Thx
