我现在有一些 JSON 字符串上传到 AWS Cloudwatch 日志,现在正在尝试编写一个过滤器,从这些日志中生成指标。
假设我有以下类似的 JSON:
{"test_results": [{"result": "success", "name": "foo", "nr_failed": 0}, {"result": "failure", "name": "bar", "nr_failed": 3}]}
AWS CloudWatch 日志指标过滤器可以让我指定以下模式: The AWS Cloudwatch log metrics filter allows me to specify a pattern like the following:
{ $.test_results[0].result = "failure" }
以上意味着,“如果'test_results'的值的第零个条目的'result'字段的值为'failure',则匹配整行”。在这种特定情况下,第零个条目的'result'字段值为“success”,因此不会匹配。但下一行将匹配:
{ $.test_results[1].result = "failure" }
现在假设我想要匹配整行,如果任何一个条目的值为“failure”,则进行匹配。
{ $.test_results[*].result = "failure" }
但是模式语法似乎不允许在数组索引中使用通配符。 如何匹配任何结果值为“failure”的行?
或者,我如何挑选出“test_results”数组中所有“nr_failed”字段的数字值,并从中创建指标?