如何在 Action 消息模板中将查询结果格式化为 json
How to format query result as json in Action message template
我正在使用 Opendistro 创建警报并调用自定义 webhook 来发送警报。我希望 Opendistro 在消息中发送查询结果。唯一的问题是结果的格式不是 json 而是接近的格式。
例如,如果消息模板(Mustache)如下
{{{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。我想知道是否有办法在 mustache 模板中将复杂变量输出为 json,或者是否有办法解析上述格式。或者上下文中可能有另一个可用的变量已经字符串化了?
我在 Opendistro 论坛上发现了另一个 post,它暴露了同样的问题。
正如您从 OpenDistro 论坛 link 发布的更新一样,有一个可用的解决方案。
我已经测试过它运行良好。
{{#toJson}}ctx.results.0{{/toJson}}
我正在使用 Opendistro 创建警报并调用自定义 webhook 来发送警报。我希望 Opendistro 在消息中发送查询结果。唯一的问题是结果的格式不是 json 而是接近的格式。
例如,如果消息模板(Mustache)如下
{{{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。我想知道是否有办法在 mustache 模板中将复杂变量输出为 json,或者是否有办法解析上述格式。或者上下文中可能有另一个可用的变量已经字符串化了?
我在 Opendistro 论坛上发现了另一个 post,它暴露了同样的问题。
正如您从 OpenDistro 论坛 link 发布的更新一样,有一个可用的解决方案。 我已经测试过它运行良好。
{{#toJson}}ctx.results.0{{/toJson}}