如何在AWS ElasticSearch Service中的触发警报中获取变量值?

时间:2019-07-09 15:57:20

标签: elasticsearch aws-elasticsearch elasticsearch-opendistro

我正在尝试通过AWS ElasticSearchService Monitor Alert Alert在Slack上发布详细消息。我试图使用描述中的变量 https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/monitors/

正在触发警报并将其发布在Slack上,但是当我尝试将其实际使用时,大多数变量为空。我仅从console.log(dateNew.format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ [(]zz[)]')) Mon Jul 08 2019 03:05:22 GMT-0700 (Pacific Daylight Time) ctx.trigger.namectx.periodStart获得信息。 ctx.periodEndctx.trigger.conditionctx.results[0]ctx.error之类的变量为空,而文档则说ctx.results[0].hits.total将被填充,如果ctx.error为空

如何获取更多数据?我的查询在某种程度上限制了它吗?

我的Monitor提取查询如下:

ctx.results[0]

1 个答案:

答案 0 :(得分:0)

触发器语法使用Mustache模板(man page),该模板并不全面。诀窍是遍历结果并引用这样的变量:

- Total hits: {{#ctx.results}}{{#hits}}{{total}}{{/hits}}{{/ctx.results}}
- Period start: {{ctx.periodStart}}
- Period end: {{ctx.periodEnd}}
- HTTP errors:
  {{#ctx.results}}
      {{#hits}}
          {{#hits}}
              {{#_source}} ip:{{ip}} status: {{status}} : {{error.message}} at path: {{path}} {{/_source}}
          {{/hits}}
      {{/hits}}
  {{/ctx.results}}