本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
收集系统健康状况遥测数据,从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保留的主题。然而,您可能会在接收或处理数据时产生成本,具体取决于您的使用案例。
遥测指标
遥测代理收集并发布以下系统度量。
名称 | 描述 | 源 |
---|---|---|
|
Greengrass 核心设备上的所有应用程序当前正在使用的内存量,包括操作系统。 |
系统 |
|
Greengrass 核心设备上的所有应用程序当前正在使用的 CPU 量,包括操作系统。 |
系统 |
|
Greengrass 核心设备的操作系统存储的文件描述符数。一个文件描述符唯一标识一个打开的文件。 |
系统 |
|
Greengrass 核心设备上运行的组件数。 |
Amazon IoT Greengrass 核心 |
|
Greengrass 核心设备上处于错误状态的组件数。 |
Amazon IoT Greengrass 核心 |
|
安装在 Greengrass 核心设备上的组件数。 |
Amazon IoT Greengrass 核心 |
|
在 Greengrass 核心设备上启动的组件数。 |
Amazon IoT Greengrass 核心 |
|
Greengrass 核心设备上的新组件数。 |
Amazon IoT Greengrass 核心 |
|
Greengrass 核心设备上停止的组件数。 |
Amazon IoT Greengrass 核心 |
|
在 Greengrass 核心设备上完成的组件数。 |
Amazon IoT Greengrass 核心 |
|
在 Greengrass 核心设备上损坏的组件数。 |
Amazon IoT Greengrass 核心 |
|
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,您应该执行以下操作:
有关更多信息,请参阅 。什么是 Amazon EventBridge?和Amazon EventBridge 入门中的Amazon EventBridge 用户指南.
创建事件规则以获取遥测数据(控制台)
请使用以下步骤使用Amazon Web Services Management Console创建一个 EventBridge 规则,用于接收由 Greengrass 核心设备发布的遥测数据。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。有关更多信息,请参阅 。创建 EventBridge 规则Amazon资源中的Amazon EventBridge 用户指南.
-
打开Amazon EventBridge
,然后选择创建规则. -
在 Name and description (名称和描述) 下,输入规则的名称和描述。
-
在 Define pattern (定义模式) 下,配置规则模式。
-
选择 Event pattern。
-
选择 Pre-defined pattern by service (服务预定义的模式)。
-
对于 Service provider (服务提供商),选择 Amazon。
-
对于 Service name (服务名称),选择 Greengrass。
-
适用于Event type中,选择Greengrass 遥测数据.
-
-
在 Select event bus (选择事件总线) 下,保留默认事件总线选项。
-
在 Select targets (选择目标) 下,配置您的目标。以下示例使用 Amazon SQS 队列,而您可以配置其他目标类型。
-
适用于目标中,选择SQS 队列.
-
适用于队列 *下,选择您的目标队列。
-
-
在 Tags - optional (标签 - 可选) 下,定义规则的标签或将字段留空。
-
选择创建。
创建事件规则以获取遥测数据 (CLI)
请使用以下步骤使用Amazon CLI创建一个 EventBridge 规则,用于接收由 Greengrass 核心设备发布的遥测数据。这样,Web 服务器、电子邮件地址和其他主题订阅者就可以响应事件。
-
创建 规则。
-
Replace
事物名称
与核心设备的事物名称。
aws events put-rule \ --name MyGreengrassTelemetryEventRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"
thing-name
\"]}}"模式中省略的属性将被忽略。
-
-
将主题添加为规则目标。以下示例使用 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 用户指南.