我们在各个地点安装了许多机器人,为客户提供服务。所有机器人都从包含客户数据的中央云数据库获取指令,每个机器人都有一个 SQS 队列,用于传递它们必须执行的命令,机器人使用 SNS 广播任何事件,一些 lambda 由这些 SNS 消息触发并处理它们。
现在我们希望更好地处理和概览机器人上发生的错误,并且总体上有更好的统计数据。
我们需要的是:
- 当发生需要手动操作才能恢复的错误时发出警报。
- 最常发生的错误类型的概述。
- 哪些错误比其他错误先发生(即哪些错误导致我们
recovery_error
需要手动维护) 特定时期内表现的总体统计数据
- 成功会话数
- 由于用户错误导致的会话失败
- 由于技术错误导致的会话失败
- 机器人无法自动恢复并回到初始位置的错误。
所有消息都有一个type
属性,可以是status
、或warning
,以及一个描述状态、错误等类型的属性。error
recovery_error
value
我的想法是有一个订阅所有 SNS 消息的 lambda,并将这些消息上传到另一个系统,然后我们将收集所有消息并提供提取上述数据所需的信息。
您会推荐哪些 AWS 产品?我已经了解了一些 CloudWatch,但不确定它是否能满足我们的需求。
我们还考虑过将所有 SNS 消息转储到数据库中,并对表格进行自定义查询。但随着我们的需求增长,这听起来像是一个很快就会需要我们做大量工作的解决方案。
我们更倾向于现成的解决方案,并据此调整我们的工作流程。
提前感谢任何提示。
答案1
CloudWatch 提供基于时间的现成指标和日志提取、查询和仪表板。它还提供基于指标的警报。通常,它可以满足您收集设备指标、发生错误时发出警报、基于给定时间段显示统计仪表板的需求。您甚至可以使用 CloudWatch 代理/API 直接从设备发送数据。
另外,使用 Kibana 管理的弹性搜索也提供了强大的数据聚合功能和更好的仪表板用户体验。
另一种方法是利用物联网服务,它们可能更适合您的要求。