簡體   English   中英

使用 lambda 和 python 解析 cloudwatch 日志事件消息數據

[英]Parsing cloudwatch log event message data using lambda and python

所以......我有使用 python boto3 為我提取 cloudwatch 日志流的 lambda。

 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

我真正想要的是 Query_time 和 Rows_examined 數據。 我可以想到一些骯臟的方法來做到這一點,比如使用空格作為分隔符來解析有效負載……但如果我沒有的話,這並不是我真正想做的事情。 我希望有一種類似於 Insights 過濾器的方法,我可以在其中使用:

@Query_time

有什么建議?

這可能是正則表達式的一個很好的用例:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM