使用 AWS IoT Greengrass 和 AWS Distro for OpenTelemet
- 17
使用 AWS IoT Greengrass 和 AWS Distro for OpenTelemetry 监控边缘应用性能
重点摘要
在当今的边缘计算领域,企业亟需高效的方法来分析、优化和排查边缘应用的性能问题。本文将演示如何使用 AWS IoT Greengrass 和 AWS Distro for OpenTelemetry 来实施追踪和可观测性方法,从而获得对边缘应用健康状况、性能及根本原因分析的细致视野。这种集成的方法能为云端和边缘应用提供端到端的可见性,提升应用性能,以便于通过 Amazon Managed Grafana 进行监控。
引言
随着边缘计算在各行各业的普及,组织正积极寻求有效的方法来分析和优化边缘应用的性能与可靠性。本文将展示如何使用 AWS IoT Greengrass 和 AWS Distro for OpenTelemetry 实施追踪和可观测性方法,从而提供对边缘应用的健康状况和性能的详细视角。通过无缝地将云端应用的可观测性策略与边缘应用连接,企业可以获得更好的性能洞见。
机器学习ML在边缘的应用领域要求卓越的可见性和控制,以确保在资源受限的环境中应用的最佳性能与可靠性。AWS 与 NXP 半导体,一个领先的边缘计算解决方案提供者,携手提供一项涵盖云到边缘的机器学习解决方案,结合了 AWS IoT Greengrass、Amazon Sagemaker 和 NXP 应用处理器。这一合作旨在应对诸如边缘应用性能监控与分析等多项挑战。
NXP 人工智能/机器学习策略与技术全球总监 Ali Osman Ors 强调了这一合作的重要性:
“通过与 AWS 的合作,我们能够为客户提供一个全面的边缘计算和机器学习解决方案,补充 NXP 的 eIQ ML 软件开发环境的设备级支持,使其能够更有效地监控和优化边缘应用。”
通过这一合作,组织能够更好地理解其边缘应用,识别瓶颈并简化性能管理。
边缘的监控和可观测性解决方案
AWS 使得边缘的可观测性易于配置,并与运行在云端的工作负载良好集成。作为 AWS 可观测性产品的一部分, AWS Distro for OpenTelemetry 能够无缝地收集并导出来自 AWS 监控服务的指标和追踪信息。Distro for OpenTelemetry Collector 是一个运行在应用环境中的代理。通过与 AWS IoT Greengrass 集成,这一组合能够在规模上扩展观测能力,为边缘和云应用提供一致的追踪,实时监控应用表现,从而使团队能够迅速作出数据驱动的决策,以提升客户体验和推动业务增长。
下图展示了解决方案架构。
图 1 监控和可观测性解决方案架构
本文将指导您如何从零开始实现 AWS IoT Greengrass 上的边缘可观测性解决方案,同时在接下来的部分中也会展示一些额外的用例。
以下是实施架构的概述:
AWS IoT Greengrass 作为支持本地执行应用的边缘软件运行时,使其能够与云服务进行交互。AWS Distro for OpenTelemetry 与 AWS IoT Greengrass 集成,以收集和导出来自边缘应用的遥测数据,并创建跨基础设施的统一视图。AWS XRay 提供应用行为的洞察,而 Amazon CloudWatch 则提供可靠、可扩展且灵活的监控。Amazon Managed Grafana 可以通过可视化追踪和性能数据,轻松理解应用的性能。前提条件
AWS 帐户。一台安装了 AWS CLI 和 git 的开发环境/计算机。一台具有最新浏览器的计算机。能够为 AWS IoT Greengrass 的最低 IAM 策略 创建新的 IAM 用户或角色。一台已运行的 AWS IoT Greengrass 设备或实例。如果您没有,可以在开发环境中运行它。请按照 教程:AWS IoT Greengrass V2 的入门 的逐步说明进行操作。实施步骤
1 准备并发布 AWS IoT Greengrass 组件
在此步骤中,使用 AWS IoT Greengrass 开发工具包命令行界面 (GDK CLI) 创建、构建和发布自定义组件。 参考文档 以安装 GDK CLI。将包含自定义 Greengrass 组件配方和示例应用程序的 git 存储库克隆到您的开发环境中:
bashgit clone https//githubcom/awssamples/awsiotgreengrassobservabilityatedge
a 创建 AWS Distro for OpenTelemetry Collector Greengrass 组件前往 comcustomawsotelcollector 文件夹并检查组件配方文件 recipeyaml。为简单起见,我们仅为 AMD64 Amazon Linux 2 平台构建组件配方。您可以在 Distro for OpenTelemetry Collector 的发布页面 上查看其他预构建平台。对于无法作为预构建提供的平台,您需要根据 git 存储库中提供的说明 为目标编译它,例如针对 NXP 边缘目标的 armv7/armv8。
运行以下CLI命令以发布自定义 Greengrass 组件。请确保更新区域参数以匹配 Greengrass 设备的区域。
bashcd comcustomawsotelcollectorgdk component build ampamp gdk component publish region useast1
恭喜!现在您已在 AWS 账户中发布了 Distro for OpenTelemetry Collector 组件,可以将其用于定义平台的 Greengrass 设备。
魔戒加速器官网b 创建应用程序 Greengrass 组件此组件代表运行在边缘的自定义应用程序逻辑。它可以是在传感器或摄像机读取的数据上运行的 ML 推理组件,也可以是处理边缘收集数据的分析应用。它是您希望在边缘出现问题时进行监控、排查和分析根本原因的组件。为了演示,此示例应用程序将 5 除以 05 之间的随机数,以便偶尔触发除以零的数学错误,代表应用逻辑的问题。
前往 comcustomedgeapplication 文件夹并检查 mainpy 文件。这是集成了 Distro for OpenTelemetry Collector 函数的主要应用程序代码。您可能会注意到,函数被包围在 tracerstartascurrentspan() 语句中。这使得测量追踪并将其发送到运行在边缘设备上的 Distro for OpenTelemetry Collector,从而最终使用 AWS API 发送到 AWS XRay 服务。检查 comcustomedgeapplication 文件夹中的组件配方文件 recipeyaml。为了简单起见,我们在组件的安装阶段安装 SDK 和依赖包。但推荐将依赖保持为单独组件,并在多个组件中重复使用作为组件依赖。运行以下 CLI 命令以发布自定义 Greengrass 组件。确保更新区域参数以匹配 Greengrass 设备的区域。bashcd comcustomedgeapplicationgdk component build ampamp gdk component publish region useast1
恭喜,现在您的应用程序组件已发布!您可以在 AWS IoT gt Greengrass gt 组件 中查看两个组件。
2 在 AWS IoT Greengrass 上运行组件并收集追踪数据
您的 Greengrass 组件现在准备好进行部署。在部署之前,设置 Greengrass 设备的必要权限,以便下载来自 Amazon S3 的组件工件,并允许 Distro for OpenTelemetry Collector 与 AWS XRay 服务进行交互。
请遵循 官方文档 中 允许组件工件的 S3 存储桶访问 部分的步骤以创建一个 AWS 身份与访问管理 (IAM) 策略。请遵循 AWS Distro for OpenTelemetry Collector 文档 gt 配置权限 中描述的步骤以创建 IAM 策略。导航到 AWS IAM,将创建的策略附加到与 AWS IoT 角色别名链接的 Greengrass 设备的 IAM 角色上。有关更多信息,请查看 官方文档。接下来,导航到 AWS IoT gt Greengrass gt 部署 以修订 Greengrass 设备的部署,部署这两个新创建的组件。
3 评估结果并在云中监控应用
现在,您将使用 Amazon Managed Grafana 工作空间来分析由 Greengrass 设备推送的可观测性数据。请按照 入门使用 Amazon Managed Grafana 的文档,在设置时启用 AWS XRay 数据源。
一旦准备好带有 AWS XRay 数据源的 Amazon Managed Grafana 实例,导航到您的 Amazon Managed Grafana 工作空间 URL 并创建新的仪表板。您可以使用 XRay 数据源的“服务地图”、“追踪列表”、“追踪统计”查询类型以及“节点图”、“追踪”可视化类型来构建可观测性仪表板。有关更多信息,请查看 Amazon Managed Grafana 文档中的 创建仪表板 页面。
图 2 AWS XRay 数据源的选项在 Amazon Managed Grafana 柱状图上的使用示例
该仪表板可以显示服务地图,以了解应用节点中的错误率、整体错误率以及追踪列表,以调查每个单一测量。为解决方案构建仪表板是一个迭代和探索的过程。通过 Amazon Managed Grafana 探索各种替代方案可以发现您的应用的最佳配置。
图 3 Amazon Managed Grafana 仪表板展示边缘应用指标
在创建“追踪列表”面板之后,选择一个追踪使用“id”并分析追踪的详细信息。
图 4 AWS XRay 追踪视图在 Amazon Managed Grafana 仪表板上的使用示例
您会发现此追踪失败,因为“推理”操作失败。它收集了持续时间和相关上下文,以及“堆栈跟踪”数据,使您能够排查在边缘设备运行时发生的问题。
边缘计算中的计算机视觉CV用例
边缘的计算机视觉是集成深入可观测性的一个良好示例。AWS、NXP 和 Toradex,一 个 AWS APN 合作伙伴,共同构建了一个 CV 边缘演示应用以参加 Embedded World 展会,并持续改进。
在演示中,AuZone Technologies MAIVIN 摄像头 正在运行 AWS IoT Greengrass。它基于 NXP iMX 8M Plus 应用处理器 SOM,由 Toradex 提供支持。Toradex Torizon 平台提供了嵌入式 Linux 操作系统、引导程序和驱动程序,并对操作系统进行频繁更新。MAIVIN 摄像头在视频流上执行 ML 推理以生成洞察。Greengrass 组件启用两条数据路径。第一条数据路径将 ML 边缘应用的输出发送到 AWS IoT Core 进行下游应用。第二条数据路径将可观测性指标发送到 AWS XRay。这些指标帮助嵌入式开发人员和 ML 数据科学家评估边缘的 ML 模型性能和行为。
下图展示了 MAIVIN 设备到 AWS 云的演示中双数据路径的示意图。
图 5 MAIVIN 摄像头到 AWS 云的数据路径示例
该演示展示了 AWS 和 AWS 合作伙伴如何帮助组织构建完整的 ML 边缘解决方案,并提供可观测性支持。您可以观看 演示视频,Toradex 在其中展示了该解决方案。
以下仪表板是在 Amazon Managed Grafana 上构建的,提供边缘计算机视觉应用性能的中心视图,包括每个边缘组件的健康状况。
图 6 Amazon Managed Grafana 仪表板上计算机视觉边缘应用的指标
ML 推理时间:提供边缘设备神经处理单元进行 ML 推理的时间。推理统计、视频源统计和 AWS IoT Core 发布统计:显示每个 Greengrass 组件的错误率,便于定位性能指标。服务地图:提供边缘应用的综合视角,以简化错误关联和排查过程。除了主仪表板外,分析单个追踪帮助团队针对特定边缘设备 pin 位置问题,便于识别性能问题或错误的根本原因。
图 7 AWS XRay 追踪视图展示计算机视觉边缘应用指标
