使用lambda和python解析cloudwatch日志事件消息数据

2024-10-01 15:31:21 发布

您现在位置:Python中文网/ 问答频道 /正文

所以。。。我有一个lambda,它使用pythonbot3为我拉取cloudwatch日志流

 responseRDS = client.get_log_events(
    logGroupName='<target log group>',
    logStreamName='<target stream>',
    limit=10,
    startFromHead=False
    )

我得到的结果是JSON,但是,我想要解析的数据在消息键中。。。这可不漂亮。以下是一个例子:

"message": "# Time: 2020-03-10T05:49:25.597945Z\n# User@Host: domain_XX[domain_XX] @  [11.111.11.111]  Id: 47187\n# Query_time: 36.601863  Lock_time: 0.000237 Rows_sent: 0  Rows_examined: 32256

我真正想要的是查询时间和行数。我可以想出一些肮脏的方法,比如使用空格作为分隔符解析有效负载。。。但如果我没有太多的时间,我也不想做什么。我希望有一种类似于Insights过滤器的方法,我可以使用:

@Query_time

有什么建议吗


Tags: 方法lambdaclientlogtargetgettimedomain
1条回答
网友
1楼 · 发布于 2024-10-01 15:31:21

这可能是regular expressions的一个很好的用例:

import re

resp = {"message": "# Time: 2020-03-10T05:49:25.597945Z\n# User@Host: domain_XX[domain_XX] @  [11.111.11.111]  Id: 47187\n# Query_time: 36.601863  Lock_time: 0.000237 Rows_sent: 0  Rows_examined: 32256"}

m = re.search(r"Query_time: ([\d.]+).*Rows_examined: (\d+)", resp["message"])
query_time = m.group(1) # 36.601863
rows_examined = m.group(2) # 32256

相关问题 更多 >

    热门问题