Значение массива адресов электронной почты наблюдателя Elasticsearch

Я работаю над наблюдателем ELK, чтобы создать предупреждение, которое отправляет массив значений, преобразованный с использованием сопоставления «преобразования».

"transform": {
   "script": "return [ err_yest : ctx.payload.aggregations.errorcount.buckets.collect { [err_count:it.doc_count, list_errors: it.errs.buckets.collect{[emsg:it.key,emsc:it.doc_count]}] } ]"
 },

Есть ли способ распечатать значения массива в теле оповещения по электронной почте, используя любой метод цикла? Я попробовал groovy scripting, но получил сообщение об ошибке, говорящее, что он не поддерживается. Все, что я мог сделать, это вручную распечатать значения в массиве, как показано ниже.

"body" : {
          "html": "<table width='400px' border='1'><thead><tr><th colspan='4'>Error Messages</th></tr><tr><th colspan='2'>Yesterday</th><th colspan='2'>Today</th></tr></thead><tbody><tr><td>{{ctx.payload.err_yest.0.list_errors.0.emsc}}</td><td align='center'>{{ctx.payload.err_yest.0.list_errors.0.emsg}}</td><td>{{ctx.payload.err_yest.1.list_errors.0.emsc}}</td><td align='center'>{{ctx.payload.err_yest.1.list_errors.0.emsg}}</td></tr><tr><td>{{ctx.payload.err_yest.0.list_errors.1.emsc}}</td><td align='center'>{{ctx.payload.err_yest.0.list_errors.1.emsg}}</td><td>{{ctx.payload.err_yest.1.list_errors.1.emsc}}</td><td align='center'>{{ctx.payload.err_yest.1.list_errors.1.emsg}}</td></tr><tr><td>{{ctx.payload.err_yest.0.list_errors.2.emsc}}</td><td align='center'>{{ctx.payload.err_yest.0.list_errors.2.emsg}}</td><td>{{ctx.payload.err_yest.1.list_errors.2.emsc}}</td><td align='center'>{{ctx.payload.err_yest.1.list_errors.2.emsg}}</td></tr></tbody></table>"
        },

person svjn    schedule 22.03.2016    source источник


Ответы (1)


Вам нужно использовать шаблоны Mustache

Синтаксис примерно такой:

{{#ctx.payload.err_yest}} {{#list_errors}} {{emsc}} {{/list_errors}}{{/ctx.payload.err_yest}}

Это будет перебирать все объекты в err_yest, затем перебирать все list_errors для объекта err_yest и отображать esmc

person maximede    schedule 22.03.2016
comment
Отбрасывая это для документации усов, несколько хороших примеров здесь mustache.github.io/mustache.5.html< /а> - person J. Allen; 16.03.2017