【问题标题】:How to get the AWS SQS metrics with python如何使用 python 获取 AWS SQS 指标
【发布时间】:2016-03-15 02:04:55
【问题描述】:

目前我们使用包boto 来获取队列消息,然后进行一些处理。相关代码为:

from boto.sqs.message import RawMessage
import boto.sqs
import boto.sns
import json

conn = boto.sqs.connect_to_region(
    "us-west-1",
    aws_access_key_id="XXXXXXX",
    aws_secret_access_key="XXXXXXX")
q=conn.get_queue('queueName')
q.set_message_class(RawMessage)
res=q.get_messages(10,wait_time_seconds=1)
....

其余的只是处理代码(对问题不重要)。此代码完美运行。

我想知道是否有办法从 python 获取队列的指标,例如,NumberOfMessagesSent

根据这篇帖子get metricsCloudWatch 网站,我认为可能会有类似

conn = boto.sqs.cloudwatch.connect_to_region()

我可以这样做

conn.get_metric_statistics()

但似乎并非如此(除非我错过了什么)。

我发现了code 这个非常好的片段。但我想知道boto.sqs 中是否有“更好”(或更简洁的选择)的东西

【问题讨论】:

    标签: python amazon-web-services boto amazon-cloudwatch


    【解决方案1】:

    调用q.get_attributes()可以获得以下属性

    ApproximateNumberOfMessages、ApproximateNumberOfMessagesNotVisible、 VisibilityTimeout、CreatedTimestamp、LastModifiedTimestamp、策略 ReceiveMessageWaitTimeSeconds

    对于NumberOfMessagesSent 之类的内容,您需要在 CloudWatch 中查询数据 SQS 日志。您链接的代码看起来像是使用 boto 查询 CloudWatch 指标的正确方法。

    【讨论】:

      【解决方案2】:

      谢谢,

      此外,如果有人觉得它有用,我们找到了与我链接的 code 中的方法类似的方法,但可能更简洁一些。

      import boto
      import datetime
      conn = boto.connect_cloudwatch(aws_access_key_id="xxx",aws_secret_access_key="xxx")
      conn.get_metric_statistics(
              300,
              datetime.datetime.utcnow() - datetime.timedelta(seconds=300),
              datetime.datetime.utcnow(),
              'ApproximateNumberOfMessagesVisible',
              'AWS/SQS',
              'Average',
              dimensions={'QueueName':['Myqueuename']}
         )
      

      【讨论】:

        猜你喜欢
        • 2022-01-27
        • 1970-01-01
        • 2021-03-16
        • 2017-07-30
        • 2020-08-06
        • 2017-06-09
        • 2016-04-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多