Как передать полезную нагрузку в качестве входных данных для процесса «преобразования» в наблюдателе ELK? Я пробовал следующим образом, но передал их как строку в файл groovy.Сценарий трансформации сканера elasticsearch
"transform": {
"script": {
"file": "error_parser",
"lang": "groovy",
"params": {
"inputval": "{{ctx.payload.aggregations.errorcount.buckets}}"
}
}
}
Когда я хотел передать строку или целое число, я не сталкиваюсь с проблемами, но с объектами. Есть ли способ передать их в файл? И в этом случае, где хранится выходное значение, которое мы возвращаем из groovy-скрипта (процесс «condition» оценивает вывод в boolean в аналогичном случае)?
Groovy содержание:
println inputval
return inputval[0].doc_count
Я получаю следующее сообщение об ошибке, когда я исполняю наблюдающий
{{ctx.payload.aggregations.errorcount.buckets}}
[2016-03-22 17:23:08,637][ERROR][watcher.transform.script ] [Hannah Levy] failed to execute [script] transform for [my-watch_2-2016-03-22T21:23:08.617
Z]
ScriptException[failed to run file script [error_parser] using lang [groovy]]; nested: MissingPropertyException[No such property: doc_count for class:
java.lang.String];
at org.elasticsearch.script.groovy.GroovyScriptEngineService$GroovyScript.run(GroovyScriptEngineService.java:318)
at org.elasticsearch.watcher.transform.script.ExecutableScriptTransform.doExecute(ExecutableScriptTransform.java:73)
at org.elasticsearch.watcher.transform.script.ExecutableScriptTransform.execute(ExecutableScriptTransform.java:59)
at org.elasticsearch.watcher.transform.script.ExecutableScriptTransform.execute(ExecutableScriptTransform.java:40)
ли Вы сказать, что мы не можем передать все динамические значения в заводной от trasnform части? – svjn
Я ничего не видел в документации, заявляющей, что вы могли бы – maximede
Спасибо maximede. Это работает. – svjn