Коллеги, еще раз всем привет.
Помогите решить проблему:
На входе поступают данные в большом количестве, следующего вида:
"_index": "mq",
  "_type": "_doc",
  "_id": "yQ",
  "_version": 1,
  "_score": null,
  "_source": {
    "@timestamp": "2019-10-14T10:43:10.793Z",
    "@version": "1",
    "headers": {
      "http_host": "elk_backend",
      "request_path": "/",
      "content_length": "90533",
      "content_type": "application/json; charset=UTF-8",
      "http_accept": null,
      "accept_encoding": "gzip,deflate",
      "http_version": "HTTP/1.1",
      "request_method": "POST",
      "http_user_agent": "Apache-HttpClient/4.5.8 (Java/1.8.0_121)"
    },
    "loggingMessages": [
      {
        "description": "Start",
        "starttime": "2019",
        "eventtype": "32",
        "msgtype": "otb",
        "mqmdmsgid": null,
        "msgid": "6a1",
        "messagestatusid": 0,
        "reciever": "",
        "mqmdcorrelid": null,
        "procid": null,
        "sender": "Test-1",
        "exception": null
      },
      {
        "description": "to",
        "starttime": "2019",
        "eventtype": "34",
        "msgtype": "Rs",
        "mqmdmsgid": "414",
        "msgid": "219",
        "messagestatusid": 0,
        "reciever": "test2a",
        "mqmdcorrelid": "000",
        "procid": "ebb",
        "sender": "Test2",
        "exception": null
      },
Как видно, поле loggingMessages имеет в своей структуре данные типа json, таких блоков json в поле loggingMessages достигает 100 возможно 300 блоков.
Когда не было высокой нагрузки эту задачу я решал через LS со следующим конфигом:
filter {
 split {
 field => "[loggingMessages]" }
Как только дали нагрузку со стороны источника данных, решено было перенести обработку на Iingest Node:
Со следующим конфигом:
 PUT _ingest/pipeline/mq
{
"description" : "mq",
"processors" : [ 
{
"split": {
"field": "loggingMessages",
"separator": "\n" 
}
}
]
}
В итоге получил следующую ошибку:
[logstash.outputs.elasticsearch] retrying failed action with response code: 500 ({"type"=>"exception", "reason"=>"java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: field [loggingMessages] of type [java.util.ArrayList] cannot be cast to [java.lang.String]", "caused_by"=>{"type"=>"illegal_argument_exception", "reason"=>"java.lang.IllegalArgumentException: field [loggingMessages] of type [java.util.ArrayList] cannot be cast to [java.lang.String]", "caused_by"=>{"type"=>"illegal_argument_exception", "reason"=>"field [loggingMessages] of type [java.util.ArrayList] cannot be cast to [java.lang.String]"}}, "header"=>{"processor_type"=>"split"}})
Подскажите, что делать? Для корректного разбора поля loggingMessages