Host data wont populate in dashboards when upgrading beats from 7.0 to 7.3 and using Logstash

ECE - Elasticsearch 7.3
Kibana -7 .3

Our metricbeat system overview dashboard will not display a Beat thats running 7.3 after upgrading from 7.0 if we run the beat through Logstash. The beat will populate in the dashboard if we point the beat directly to Elasticsearch but not through Logstash. The data is populating in Elasticsearch as I can search for the tag that we want and the host.name that we are looking for but the dashboard will not populate the beat even though the dash is set to check metricbeat-*.

We've tried a few other version of metricbeat that are higher than the first 7.0 version and none of them will populate in the dashboard if we run the beat through logstash. Any insight would be appreciated.

input {
  beats {
   port => 5044
  }
}

filter {
    if [host][hostname] =~ "(abc|def|ghi|jkl|mno)" {
        mutate {
            add_tag => [ "AD" ]
        }
    }
    if [host][hostname] =~ "(pqr|stu|vwx)" {
        mutate {
            add_tag => [ "opentest" ]
        }
    }
}

output {
  if (([agent][type] == "metricbeat") and ([agent][version] == 7.3)) {
    elasticsearch {
      hosts => ["https://abc.gov:9243"]
      manage_template => true
      index => "metricbeat-%{[agent][version]}"
	  user => xxxxx
	  password => xxxxx
	  ssl => true
	  cacert => "/etc/logstash/cert/cert.pem"
  }
 }
  if [agent][type] == "metricbeat" {
    elasticsearch {
      hosts => ["https://efg.gov:9243"]
      manage_template => false
      index => "metricbeat-%{[agent][version]}"
	  user => xxxxx
	  password => xxxxx
	  ssl => true
	  cacert => "/etc/logstash/cert/cert.pem"
 }
    elasticsearch {
      hosts => ["xx.xxx.xx.xx"]
      manage_template => false
      index => "metricbeat-%{[agent][version]}"
      #index => "*"
  }
 }
  if [agent][type] == "filebeat" {
    elasticsearch {
      hosts => ["https://hij.gov:9243"]
      manage_template => false
      index => "filebeat-%{[agent][version]}"
	  user => xxxxx
	  password => xxxxx
	  ssl => true
	  cacert => "/etc/logstash/cert/cert.pem"
 }
   elasticsearch {
     hosts => ["xx.xxx.xx.xx"]
     manage_template => false
     index => "filebeat-%{[agent][version]}"
  }
 }
  if [agent][type] == "heartbeat" {
    elasticsearch {
      hosts => ["https://jkl.gov:9243"]
      manage_template => false
      index => "heartbeat-%{[agent][version]}"
	  user => xxxxx
	  password => xxxxx
	  ssl => true
	 cacert => "/etc/logstash/cert/cert.pem"
 }
  elasticsearch {
    hosts => ["xx.xxx.xx.xx"]
    manage_template => false
    index => "heartbeat-%{[agent][version]}-%{+YYYY.MM.dd}"
  }
 }
}

I set this up in a fresh testing environment and the problem persists. Kibana actually shows an error now of:

{
  "took": 8,
  "timed_out": false,
  "_shards": {
    "total": 3,
    "successful": 2,
    "skipped": 0,
    "failed": 1,
    "failures": [
      {
        "shard": 0,
        "index": "metricbeat-7.3.0",
        "node": "RZ4p0uSxT0SwZSnqyBsbLA",
        "reason": {
          "type": "illegal_argument_exception",
          "reason": "Fielddata is disabled on text fields by default. Set fielddata=true on [host.name] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead."
        }
      }
    ]
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  },
  "aggregations": {
    "1": {
      "value": 0
    }
  }
}