Linux 基金会Zephyr 开源项目已经成长为许多物联网项目的支柱。Zephyr 提供一流的小型、可扩展的实时操作系统 (RTOS),针对资源受限的设备在多个架构中进行了优化。该项目目前有 1,000 名贡献者和 50,000 次提交,为多种架构构建高级支持,包括 ARC、Arm、Intel、Nios、RISC-V、SPARC 和 Tensilica,以及 250 多个板。
与 Zephyr 合作时,有一些重要的考虑因素要保持事物的连接和可靠运行。开发人员无法在他们的办公桌上解决所有类别的问题,有些问题只有在设备群增长时才会变得明显。随着网络和网络堆栈的发展,您需要确保升级不会引入不必要的问题。
例如,考虑我们部署 GPS 跟踪器来跟踪农场动物的情况。该设备是一种占地面积小、基于传感器的项圈。在任何一天,动物从移动网络漫游到移动网络;从一个国家到另一个国家;从一个位置到另一个位置。这种运动很快暴露了错误配置和意外行为,这些错误配置和意外行为可能导致电力损失,从而导致巨大的经济损失。我们不需要只知道一个问题,我们需要知道它为什么会发生以及如何解决它。使用联网设备时,远程监控和调试对于即时了解问题所在、解决问题的最佳步骤以及最终如何建立和维护正常操作至关重要。
我们使用 Zephyr 和基于云的设备可观察性平台 Memfault 的组合来支持设备监控和更新。根据我们的经验,您可以利用这两者来建立使用重启、看门狗、故障/断言和连接指标进行远程监控的最佳实践。
建立一个可观察性平台
Memfault允许开发人员远程监控、调试和更新固件,这使我们能够:
避免生产冻结,以支持最小可行产品和第 0 天更新
持续监控整体设备健康状况
在大多数(如果有)最终用户注意到问题之前推送更新和补丁
Memfault 的 SDK 可轻松集成以收集数据包以进行云分析和