Skip to content

metaClass subfields for "Elasticsearch Unreachable" events #751

Open
@vpavlushkov

Description

@vpavlushkov

Logstash produces some garbage for "Elasticsearch Unreachable" events:

...
      "loggerName": "logstash.outputs.elasticsearch",
      "levelString": "warn",
      "thread": "Ruby-0-Thread-34@[main]>worker1: :1",
      "level": "40",
      "timeMillis": 1521381519666,
      "logEvent": {
        "message": "Marking url as dead. Last error: [LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError] Elasticsearch Unreachable: [https://logs-sandbox:xxxxxx@<instance>.europe-west1.gcp.cloud.es.io:9243/][Manticore::SocketException] Connection reset",
        "url": {
          "metaClass": {
            "metaClass": {
              "metaClass": {
                "error_message": "Elasticsearch Unreachable: [https://logs-sandbox:xxxxxx@<instance>.europe-west1.gcp.cloud.es.io:9243/][Manticore::SocketException] Connection reset",
                "error_class": "LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError",
                "url": "https://logs-sandbox:xxxxxx@<instance>.europe-west1.gcp.cloud.es.io:9243/"
              }
            }
          }
        }
      }
...

Those extra metaClass layers are really unnecessary and, when Logstash logs are getting synced into Elastic, the field type for logEvent.url is getting violated as it is not a URL/string anymore but becomes an object.

For example "restored connection" event is getting logged like that:

...
      "levelString": "warn",
      "loggerName": "logstash.outputs.elasticsearch",
      "logEvent": {
        "message": "Restored connection to ES instance",
        "url": "https://logs-sandbox:xxxxxx@<instance>.europe-west1.gcp.cloud.es.io:9243/"
      },
      "timeMillis": 1521063811404,
      "thread": "Ruby-0-Thread-29: :1",
      "level": "40"
...

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions