收集系统健康状况遥测数据,从Amazon IoT Greengrass核心设备 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

收集系统健康状况遥测数据,从Amazon IoT Greengrass核心设备

系统健康状况遥测数据是诊断数据,可帮助您监控 Greengrass 核心设备上关键操作的性能。Greengrass 核心设备上的遥测代理会收集本地遥测数据并将其发布到 Amazon EventBridge,而无需任何客户交互。核心设备会尽力将遥测数据发布到 EventBridge。例如,核心设备在离线时可能无法提供遥测数据。

注意

Amazon EventBridge 是一个事件总线服务,您可以使用它将应用程序与来自各种来源的数据连接起来,例如 Greengrass 核心设备。有关更多信息,请参阅 。什么是 Amazon EventBridge?中的Amazon EventBridge 用户指南.

您可以创建项目和应用程序,以便从边缘设备检索、分析、转换和报告遥测数据。领域专家(如流程工程师)可以使用这些应用程序深入了解车队的运行状况。

为了确保 Greengrass 组件正常运行,Amazon IoT Greengrass将数据用于开发和提高质量的目的。此功能还有助于提供新的和增强的边缘功能。Amazon IoT Greengrass将遥测数据保留最多 7 天。

默认情况下,所有 Greengrass 核心设备都启用了此功能。一旦您设置了 Greengrass 核心设备,您就会自动开始接收数据。

Amazon IoT Greengrass遥测使用以下默认设置:

  • 遥测代理每小时聚合遥测数据。

  • 遥测代理每 24 小时发布一条遥测消息。

遥测代理使用服务质量 (QoS) 级别为 0 的 MQTT 协议发布数据,这意味着它不会确认传递或重试发布尝试。遥测消息与其他消息共享 MQTT 连接,用于订阅目的地Amazon IoT Core.

除了数据链路成本之外,数据从核心传输到Amazon IoT Core免费。这是因为代理发布到Amazon保留的主题。然而,您可能会在接收或处理数据时产生成本,具体取决于您的使用案例。

遥测指标

遥测代理收集并发布以下系统度量。

名称 描述

SystemMemUsage

Greengrass 核心设备上的所有应用程序当前正在使用的内存量,包括操作系统。

系统

CpuUsage

Greengrass 核心设备上的所有应用程序当前正在使用的 CPU 量,包括操作系统。

系统

TotalNumberOfFDs

Greengrass 核心设备的操作系统存储的文件描述符数。一个文件描述符唯一标识一个打开的文件。

系统

NumberOfComponentsRunning

Greengrass 核心设备上运行的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsErrored

Greengrass 核心设备上处于错误状态的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsInstalled

安装在 Greengrass 核心设备上的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsStarting

在 Greengrass 核心设备上启动的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsNew

Greengrass 核心设备上的新组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsStopping

Greengrass 核心设备上停止的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsFinished

在 Greengrass 核心设备上完成的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsBroken

在 Greengrass 核心设备上损坏的组件数。

Amazon IoT Greengrass 核心

NumberOfComponentsStateless

Greengrass 核心设备上的无状态组件的数量。

Amazon IoT Greengrass 核心

配置遥测设置

您可以为每个 Greengrass 核心设备启用或禁用遥测功能。您还可以配置核心设备聚合和发布数据的时间间隔。要配置遥测,请自定义遥测配置参数当您部署Greengrass 核.

订阅遥测数据

您可以在 Amazon EventBridge 中创建规则,定义如何处理从 Greengrass 核心设备发布的遥测数据。当 EventBridge 收到数据时,它会调用规则中定义的目标操作。例如,您可以创建发送通知、存储事件信息、采取纠正措施或调用其他事件的事件规则。

遥测事件

遥测事件采用以下格式。

{ "version": "0", "id": "a09d303e-2f6e-3d3c-a693-8e33f4fe3955", "detail-type": "Greengrass Telemetry Data", "source": "aws.greengrass", "account": "123456789012", "time": "2020-11-30T20:45:53Z", "region": "us-east-1", "resources": [], "detail": { "ThingName": "MyGreengrassCore", "Schema": "2020-07-30", "ADP": [ { "TS": 1602186483234, "NS": "SystemMetrics", "M": [ { "N": "TotalNumberOfFDs", "Sum": 6447.0, "U": "Count" }, { "N": "CpuUsage", "Sum": 15.458333333333332, "U": "Percent" }, { "N": "SystemMemUsage", "Sum": 10201.0, "U": "Megabytes" } ] }, { "TS": 1602186483234, "NS": "GreengrassComponents", "M": [ { "N": "NumberOfComponentsStopping", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsStarting", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsBroken", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsFinished", "Sum": 1.0, "U": "Count" }, { "N": "NumberOfComponentsInstalled", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsRunning", "Sum": 7.0, "U": "Count" }, { "N": "NumberOfComponentsNew", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsErrored", "Sum": 0.0, "U": "Count" }, { "N": "NumberOfComponentsStateless", "Sum": 0.0, "U": "Count" } ] } ] } }

这些区域有:ADP数组包含具有以下属性的聚合数据点的列表:

TS

聚合数据的时间戳。

NS

指标命名空间。

M

指标的列表。指标包含以下属性:

N

的名称指标.

Sum

聚合量度值。遥测代理将新值添加到前一个总数中,因此总和是一个不断增加的值。您可以使用时间戳查找特定聚合的值。例如,要查找最新的聚合值,请从最新的时间戳值中减去先前的时间戳值。

U

指标值的单位。

创建 EventBridge 梁规则的先决条件

在您创建 EventBridge 规则Amazon IoT Greengrass,您应该执行以下操作:

  • 熟悉 EventBridge 中的事件、规则和目标。

  • 创建和配置targets由您的 EventBridge 梁规则调用。规则可以调用许多类型的目标,如 Amazon Kinesis 流、Amazon Lambda函数、Amazon SNS 主题和 Amazon SQS 队列。

    您的 EventBridge 规则和关联的目标必须位于Amazon Web Services 区域在那里你创建了你的 Greengrass 资源。有关更多信息,请参阅 。服务终端节点和配额中的Amazon一般参考.

有关更多信息,请参阅 。什么是 Amazon EventBridge?Amazon EventBridge 入门中的Amazon EventBridge 用户指南.

创建事件规则以获取遥测数据(控制台)

请使用以下步骤使用Amazon Web Services Management Console创建一个 EventBridge 规则,用于接收由 Greengrass 核心设备发布的遥测数据。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。有关更多信息,请参阅 。创建 EventBridge 规则Amazon资源中的Amazon EventBridge 用户指南.

  1. 打开Amazon EventBridge,然后选择创建规则.

  2. Name and description (名称和描述) 下,输入规则的名称和描述。

  3. Define pattern (定义模式) 下,配置规则模式。

    1. 选择 Event pattern

    2. 选择 Pre-defined pattern by service (服务预定义的模式)

    3. 对于 Service provider (服务提供商),选择 Amazon

    4. 对于 Service name (服务名称),选择 Greengrass

    5. 适用于Event type中,选择Greengrass 遥测数据.

  4. Select event bus (选择事件总线) 下,保留默认事件总线选项。

  5. Select targets (选择目标) 下,配置您的目标。以下示例使用 Amazon SQS 队列,而您可以配置其他目标类型。

    1. 适用于目标中,选择SQS 队列.

    2. 适用于队列 *下,选择您的目标队列。

  6. Tags - optional (标签 - 可选) 下,定义规则的标签或将字段留空。

  7. 选择创建

创建事件规则以获取遥测数据 (CLI)

请使用以下步骤使用Amazon CLI创建一个 EventBridge 规则,用于接收由 Greengrass 核心设备发布的遥测数据。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。

  1. 创建 规则。

    • Replace事物名称与核心设备的事物名称。

    aws events put-rule \ --name MyGreengrassTelemetryEventRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"

    模式中省略的属性将被忽略。

  2. 将主题添加为规则目标。以下示例使用 Amazon SQS,而您可以配置其他目标类型。

    • Replace队列 arn与 Amazon SQS 队列的 ARN。

    aws events put-targets \ --rule MyGreengrassTelemetryEventRule \ --targets "Id"="1","Arn"="queue-arn"
    注意

    要允许 Amazon EventBridge 调用您的目标队列,您必须将基于资源的策略添加到您的主题中。有关更多信息,请参阅 。Amazon SQS 权限中的Amazon EventBridge 用户指南.

有关更多信息,请参阅 。EventBridge 中的事件和事件模式中的Amazon EventBridge 用户指南.