【问题标题】:AWS Cloudwatch Search ExpressionAWS Cloudwatch 搜索表达式
【发布时间】:2019-12-14 19:48:35
【问题描述】:

我想看看社区是否可以帮助我弄清楚这是否可能。

我目前在 Cloudwatch 中处理大量数据,在让搜索表达式正常工作后,我想知道我们是否可以采取以下措施:

[{"expression": 
    "SEARCH('{AWS/ApiGateway,ApiName} ApiName', 'Average', 300)", "id": "e2"}]

并使用它来仅返回特定的 ApiName。

例如:

test1
test2
test3
data1
data2
data3
Fubar1

我问这个是因为上面的行会在 Cloudwatch 中显示所有这些数据,这很有用而且很棒,但我想知道我是否可以做类似的事情。

[{"expression": 
    "SEARCH('{AWS/ApiGateway,ApiName} ApiName = \"test"\', 'Average', 300)", "id": "e2"}]

然后让它返回:

test1
test2
test3

我正在联系,因为从文档看来这是不可能的,如果我想做这样的事情,我可能应该研究一下日志过滤器。无论如何,感谢您的任何回复。

【问题讨论】:

    标签: amazon-cloudformation amazon-cloudwatch


    【解决方案1】:

    如果您执行ApiName="test",它将完全匹配test,但如果您删除双引号并执行ApiName=test,它将匹配所有包含test 的ApiName。

    所以你的表达方式是

    [ { "expression": "SEARCH('{AWS/ApiGateway,ApiName} ApiName=test', 'Average', 300)", "id": "e2" } ]
    

    更多示例请参见此处: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/search-expression-examples.html

    【讨论】:

    • 好吧,没想到会这么简单,但感谢您的回复,解决了困扰我一段时间的问题。我能否问一个后续问题,使用与搜索表达式相同的逻辑,我是否也可以使用它来缩小数据范围。例如,我们有 300 多个 lambda,想知道您是否可以让 Cloudwatch 仅显示 lambda 函数冷启动的数据实例。这是我们假设我们必须在 Lambda 上使用过滤日志的地方。
    • 找不到使用搜索表达式的方法。如果您已经在日志中有此信息,请查看 Logs Insights:docs.aws.amazon.com/AmazonCloudWatch/latest/logs/…
    • 答案并不完全准确。例如,ApiName=test 将不匹配单词“testing”。原因是 cloudwatch 对 CamelCase 和带有非字母数字分隔符的单词使用标记化。确保您了解标记化的工作原理:docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/…
    猜你喜欢
    • 2021-07-24
    • 2019-08-27
    • 2022-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多