amazon-web-services - 如何按影子状态/属性监控 AWS IOT 连接设备历史记录和分组
问题描述
鉴于我有 xK 设备,它们中的每一个都连接到 AWS IoT,并且它们中的每一个都有属性/影子状态来对它们进行分组
设备影子示例:{ "factory": "factoryA", "pipeInstalledVersion: "1.5.6" }
分组监控这些设备的最简单方法是什么(基于影子状态)
例如,我想知道 A 工厂在 11:05、15:30、20:50 连接了多少设备。我还想知道设备在特定时间间隔(例如每 5 分钟)具有的 pipeInstalledVersion。我还想知道,例如,工厂 A 在 09:00 连接的设备是否少于 X,然后发送警报。
AWS IoT 有一个用于连接设备的监控仪表板,但无法通过影子状态/属性对其进行分组
我研究了 AWS IoT 分析,但似乎存在一些限制 - 推荐的用于可视化数据的平台 QuickSight 具有有限的自动刷新周期(我相信 1 小时),即使基础数据集可以每 5 分钟刷新一次。- 数据集仅在 IOT 设备在该时间传输数据时才会显示数据。如果物联网设备已连接但在该时间段内没有传输数据怎么办?就好像它没有连接一样。
解决方案
队列索引提供了使用事物属性和事物影子状态对您的设备队列进行强大搜索的能力。
将此与 AWS Lambda 结合起来,您就可以对您的队列进行计划搜索,这些搜索可以与任意数量的 AWS 操作配对(即记录 CloudWatch 指标、扩展 EC2 等)。
示例队列索引查询:
connectivity.connected:true
返回当前连接的所有事物。
connectivity.connected:true AND shadow.reported.model:A
返回当前连接的所有事物并具有特定的影子状态。
aws iot get-cardinality --aggregation-field "connectivity.connected" --query-string "*"
在给定时间查找连接设备的数量。(聚合查询)
推荐阅读
- mongodb - How to search character by character in mongodb array text field?
- dask - dask jobqueue worker failure at startup 'Resource temporarily unavailable'
- reactjs - 如何使用 jsPDF ReactJS 将 PDF 文件保存在服务器文件夹中,
- php - How to find if first character is an underscore?
- c# - 如何阻止应用程序从开始菜单窃取焦点
- alexa - 我如何解决 Alexa 停止、取消意图不起作用的问题
- jquery - 在 vue 中使用 css/scss 应用动态样式
- javascript - ReferenceError:消息未定义 - 欢迎消息 - 嵌入
- c# - How to remove control of main window from parent window
- bash - split a string based on a .txt and space