如何在操作消息模板中将查询结果格式化为json

问题描述

我正在使用Opendistro创建警报并调用自定义Webhook发送警报。我希望Opendistro在消息中发送查询结果。唯一的问题是结果的格式不是json而是接近的内容

例如,如果消息模板(胡子)如下所示

{{{ctx.results.0}}}

我的Webhook可能会收到类似的信息

{_shards={total=30,Failed=0,successful=30,skipped=0},hits={hits=[],total=3,max_score=0.0},took=16,timed_out=false,aggregations={aggregation={doc_count_error_upper_bound=0,sum_other_doc_count=0,buckets=[{doc_count=3,key=1.1.1.1}]}}}

这是查询结果,但未格式化为json。我想知道在胡子模板中是否有一种将复杂变量输出为json的方法,或者是否有一种解析上述格式的方法。还是在已经被字符串化的上下文中还有另一个变量可用?

我在Opendistro论坛上发现了另外post个,也暴露了同样的问题。

解决方法

当您从 OpenDistro 论坛发布链接的更新中,有一个可用的解决方案。 我已经测试过它运行良好。

{{#toJson}}ctx.results.0{{/toJson}}