【问题标题】:query cloudwatch logs for distinct values using boto3 in python在 python 中使用 boto3 查询 cloudwatch 日志以获取不同的值
【发布时间】: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


    【解决方案1】:

    您可以将表达式通过管道传递给stat 命令并计算每个节点名的出现次数。

    将此添加到查询的末尾:

    | stats count(*) by nodename
    

    结果将是:

    {
      'results': [
        [
          {
            'field': 'nodename',
            'value': 'MacBook-Pro-2.local\n'
          },
          {
            'field': 'count(*)',
            'value': '2'
          }
        ],
        [
          {
            'field': 'nodename',
            'value': 'MacBook-Pro-5.local\n'
          },
          {
            'field': 'count(*)',
            'value': '1'
          }
        ]
      ]
    }
    

    有关各种命令的更多详细信息,请参见此处:https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_QuerySyntax.html

    【讨论】:

    • 完美。谢谢
    猜你喜欢
    • 2020-04-02
    • 1970-01-01
    • 1970-01-01
    • 2022-08-04
    • 2020-04-25
    • 2020-08-12
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多