2016-03-22 9 views
1

私はELKウォッチャーを使って 'transform'マッピングを使って値の配列を変換するアラートを作成しています。Elasticsearchウォッチャーの電子メールの配列値

"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]}] } ]" 
}, 

ループの方法を使用して電子メールアラートの本文に配列値を出力する方法はありますか?私はグルーヴィースクリプティングを試みましたが、サポートされていないと言ってエラーになりました。私ができることは、以下のように配列に値を手動で出力することです。

あなたは口ひげのテンプレートを使用する必要が
"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>" 
     }, 

答えて

4

構文は次のようなものです:err_yestオブジェクトのすべてのlist_errorsをループその後、err_yest内のすべてのオブジェクトの上にこれがループ

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

ディスプレイesmc

+0

ありがとうございました。 – svjn

+0

ひげそりのドキュメントのためにこれをドロップすると、ここでは良い例がいくつかあります。https://mustache.github.io/mustache.5.html –