【发布时间】:2019-12-12 23:27:55
【问题描述】:
我有一个将指标写入Cloudwatch 的 lambda 函数。在写入指标的同时,它会在日志组中生成一些日志。
INFO:: username: simran+test@abc.com ClinicID: 7667 nodename: MacBook-Pro-2.local
INFO:: username: simran+test2@abc.com ClinicID: 7669 nodename: MacBook-Pro-3.local
INFO:: username: simran+test@abc.com ClinicID: 7668 nodename: MacBook-Pro-4.local
INFO:: username: simran+test3@abc.com ClinicID: 7667 nodename: MacBook-Pro-5.local
INFO:: username: simran+test3@abc.com ClinicID: 7667 nodename: MacBook-Pro-2.local
对于给定的ClinicId,我需要一种有效的方法来获取nodename 的不同值。例如,我将7667 传递给ClinicId,我期望
['MacBook-Pro-2.local', 'MacBook-Pro-5.local']
这是我尝试过的:
query = "fields @timestamp, @message | parse @message \"username: * ClinicID: * nodename: *\" as username, ClinicID, nodename | filter ClinicID = "+ clinic_id
start_query_response = client.start_query(
logGroupName=log_group,
startTime=int(time.mktime((Util.utcnow() - timedelta(hours=hours)).timetuple())),
endTime=int(time.mktime(Util.utcnow().timetuple())),
queryString=query,
)
我考虑过在 Python 中迭代 start_query_response,但我不喜欢这个想法。由于我要查看的是超过7 days 的日志,因此我需要一种有效的方法,而不是必须为给定的ClinicID 从过去的7 days 迭代每个日志。
【问题讨论】:
标签: python boto3 amazon-cloudwatch amazon-cloudwatchlogs aws-cloudwatch-log-insights