AWS SQS 可观测性最佳实践

AWS SQS

AWS SQS(Amazon Simple Queue Service)是一种完全托管的消息队列服务,用于在分布式系统中解耦和缓冲消息。它支持高可用性、可扩展性和安全性,能够处理大量消息,确保消息的可靠传输和顺序性。开发者可以轻松集成 SQS 到应用程序中,实现异步通信、负载均衡和微服务架构,从而提高系统的灵活性和响应能力。监控 SQS 能够帮助开发者和运维人员实时了解消息队列的运行状态,及时发现潜在问题(如消息积压、处理延迟或队列错误)。通过监控关键指标(如消息可见数量、发送和接收速率等),可以优化系统性能,确保消息的可靠传递和及时处理,从而保障分布式系统和微服务架构的高效运行,提升用户体验并降低运维成本。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

采集器配置

  1. 登陆观测云控制台
  2. 点击【集成】菜单,选择【云账号管理】
  3. 点击【添加云账号】,选择【AWS】,填写界面所需的信息,如之前已配置过云账号信息,则忽略此步骤
  4. 点击【测试】,测试成功后点击【保存】,如果测试失败,请检查相关配置信息是否正确,并重新测试
  5. 点击【云账号管理】列表上可以看到已添加的云账号,点击相应的云账号,进入详情页
  6. 点击云账号详情页的【集成】按钮,在未安装列表下,找到 AWS Simple Queue Service,点击【安装】按钮,弹出安装界面安装即可

关键指标

指标名称 描述 单位 有效统计数据
ApproximateAgeOfOldestMessage 队列中最旧的未删除消息的大约存在时间。注意: 在接收消息三次(或以上)且未处理时,该消息将会移至队列的后面,而 ApproximateAgeOfOldestMessage 指标会指示尚未接收超过三次的第二旧的消息。即使队列具有重新驱动策略,也会发生此操作。由于单个毒丸消息(多次接收但从未删除)会扭曲此指标,直到成功使用毒丸消息之前,指标中都不会包含毒丸消息的使用期限。如果队列有重新驱动策略,当达到配置的最大接收数目后,消息将会移至死信队列。当消息移至死信队列,死信队列的ApproximateAgeOfOldestMessage 指标表示该消息移至死信队列的时间(而不是该消息发送的原始时间)。报告标准:如果队列处于活动状态,则报告非负值。 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
ApproximateNumberOfMessagesDelayed 队列中延迟且无法立即读取的消息数量。如果队列被配置为延迟队列,或者使用了延迟参数来发送消息,则会出现这种情况。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
ApproximateNumberOfMessagesNotVisible 处于空中状态的消息的数量。如果消息已发送到客户端,但尚未删除或尚未到达其可见性窗口末尾,则消息被视为处于飞行状态。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
ApproximateNumberOfMessagesVisible 可从队列取回的消息数量。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
NumberOfEmptyReceives 未返回消息的 ReceiveMessage API 调用数量。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
NumberOfMessagesDeleted 从队列删除的消息数量。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
NumberOfMessagesReceived 调用 ReceiveMessage 操作返回的消息数量。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
NumberOfMessagesSent 添加到队列的消息数量。报告标准:如果队列处于活动状态,则报告非负值。 计数 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)
SentMessageSize 添加到队列的消息大小。报告标准:如果队列处于活动状态,则报告非负值。 字节 平均值、最小值、最大值、总和、数据样本(在 Amazon SQS 控制台中显示为样本数)

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 "AWS SQS", 选择 "AWS S3 监控视图",点击 "确定" 即可添加视图。

总结

观测云通过集成 AWS SQS,能够实时采集和分析 SQS 队列的关键指标(如消息可见数量、发送接收速率、延迟消息数等),并结合可视化界面和告警功能,帮助用户快速发现队列性能瓶颈、消息积压等问题,从而实现对 SQS 队列的高效监控与管理,确保分布式系统和微服务架构的稳定运行。

相关推荐
练习两年半的工程师4 小时前
AWS TechFest 2025: 智能体企业级开发流程、Strands Agents
人工智能·云计算·aws
thinktik1 天前
还在手把手教AI写代码么? 让你的AWS Kiro AI IDE直接读飞书需求文档给你打工吧!
后端·serverless·aws
Amy_au3 天前
Dotnet 项目手动部署到AWS 和Github action CICD 流程总结
云计算·aws
我不是小upper3 天前
使用 Terraform、AWS 和 Python 构建无服务器实时数据管道
serverless·aws·terraform
运维开发王义杰5 天前
信息安全:GitLab与AWS OIDC集成的深度解析,IAM信任策略中的条件配置
云计算·gitlab·aws
阿雄不会写代码6 天前
python-pptx 库(最常用,适合生成/修改 PPT 文件)
云计算·aws
AWS官方合作商6 天前
构建企业级区块链网络:基于AWS EC2的弹性、高可用解决方案
网络·区块链·aws
fyihdg8 天前
aws上创建jenkins
云计算·aws
TG_yilongcloud8 天前
亚马逊云代理商:如何选择适合的AWS EC2实例类型?
服务器·云计算·aws·实例类型