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

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

从以下位置收集系统运行状况遥测数据Amazon IoT Greengrass核心设备

系统运行状况遥测数据是诊断数据,可帮助您监控 Greengrass 核心设备上关键操作的性能。您可以创建项目和应用程序来检索、分析、转换和报告来自边缘设备的遥测数据。领域专家(如流程工程师)可以使用这些应用程序查看车队运行状况。

您可以使用以下方法从 Greengrass 核心设备收集遥测数据:

  • 核遥测发射器组件原子核遥测发射器组件(aws.greengrass.telemetry.NucleusEmitter) 在 Greengrass 核心设备上发布遥测数据到$local/greengrass/telemetry默认情况下为主题。即使您的设备与云的连接受到限制,您也可以使用发布到此主题的数据在核心设备上进行本地操作。或者,您也可以配置组件,将遥测数据发布到Amazon IoT Core您选择的 MQTT 主题。

    必须将 nucleus 发射器组件部署到核心设备才能发布遥测数据。将遥测数据发布到本地主题不会产生任何相关费用。但是,使用 MQTT 主题将数据发布到Amazon Web Services 云受制于Amazon IoT Core定价.

    Amazon IoT Greengrass提供了几个社区组件帮助您使用 InfluxDB 和 Grafana 在核心设备上本地分析和可视化遥测数据。这些组件使用来自原子核发射器组件的遥测数据。有关更多信息,请参阅自述文件InfluxDB 发布器组件.

  • 遥测代理— Greengrass 核心设备上的遥测代理收集本地遥测数据并将其发布到亚马逊 EventBridge 无需任何客户互动。核心设备将遥测数据发布到 EventBridge 尽最大努力发出。例如,核心设备在离线时可能无法传送遥测数据。

    默认情况下,所有 Greengrass 核心设备均启用遥测代理功能。一旦你设置了 Greengrass 核心设备,你就会自动开始接收数据。除了数据链路成本外,从核心设备传输到Amazon IoT Core免费。这是因为代理发布到Amazon保留的主题。但是,根据您的用例,您在接收或处理数据时可能会产生费用。

    注意

    亚马逊 EventBridge 是一种事件总线服务,让您可以用其轻松地将应用程序与来自各种来源(如 Greengrass 核心设备)的数据相连接。有关更多信息,请参阅 。什么是 Amazon? EventBridge?中的亚马逊 EventBridge 用户指南.

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

此部分说明如何配置和使用遥测代理。有关配置 nucleus 遥测发射器组件的信息,请参阅Nucleus.

遥测指标

下表描述了遥测代理发布的指标。

名称 描述

系统

SystemMemUsage

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

CpuUsage

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

TotalNumberOfFDs

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

Greengrass 核

NumberOfComponentsRunning

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

NumberOfComponentsErrored

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

NumberOfComponentsInstalled

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

NumberOfComponentsStarting

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

NumberOfComponentsNew

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

NumberOfComponentsStopping

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

NumberOfComponentsFinished

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

NumberOfComponentsBroken

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

NumberOfComponentsStateless

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

流管理器— 此功能需要 v2.7.0 或更高版本的 Greengrass 核组件。

BytesAppended

附加到流管理器的数据的字节数。

BytesUploadedToIoTAnalytics

流管理器导出到中的通道的数据的字节数Amazon IoT Analytics.

BytesUploadedToKinesis

流管理器在 Amazon Kinesis 数据流中导出到流的数据的字节数。

BytesUploadedToIoTSiteWise

流管理器导出的数据的字节数Amazon IoT SiteWise.

BytesUploadedToS3

流管理器导出的数据的字节数 Amazon S3 中的对象

配置遥测客服设置

遥测客服使用以下默认设置:

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

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

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

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

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

订阅中的遥测数据 EventBridge

您可以在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" } ] } { "TS": 1602186483234, "NS": "aws.greengrass.StreamManager", "M": [ { "N": "BytesAppended", "Sum": 157745524.0, "U": "Bytes" }, { "N": "BytesUploadedToIoTAnalytics", "Sum": 149012.0, "U": "Bytes" }, { "N": "BytesUploadedToKinesis", "Sum": 12192.0, "U": "Bytes" }, { "N": "BytesUploadedToIoTSiteWise", "Sum": 13321.0, "U": "Bytes" }, { "N": "BytesUploadedToS3", "Sum": 12213.0, "U": "Bytes" } ] } ] } }

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

TS

收集数据的时间戳。

NS

指标命名空间。

M

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

N

指标的名称。

Sum

此遥测事件中的指标值总计。

U

指标值的单位。

有关每个指标的更多信息,请参阅遥测指标.

创建的先决条件 EventBridge规则

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

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

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

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

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

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

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

  1. 打开亚马逊 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,SECT...Greengrass 遥测数据.

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

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

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

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

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

  7. 选择Create(创建)。

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

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

  1. 创建 规则。

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

    Linux or Unix
    aws events put-rule \ --name MyGreengrassTelemetryEventRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"
    Windows Command Prompt (CMD)
    aws events put-rule ^ --name MyGreengrassTelemetryEventRule ^ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"
    PowerShell
    aws events put-rule ` --name MyGreengrassTelemetryEventRule ` --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"ThingName\": [\"thing-name\"]}}"

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

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

    • Replacequeue-arn使用您的 Amazon SQS 队列的 ARN。

    Linux or Unix
    aws events put-targets \ --rule MyGreengrassTelemetryEventRule \ --targets "Id"="1","Arn"="queue-arn"
    Windows Command Prompt (CMD)
    aws events put-targets ^ --rule MyGreengrassTelemetryEventRule ^ --targets "Id"="1","Arn"="queue-arn"
    PowerShell
    aws events put-targets ` --rule MyGreengrassTelemetryEventRule ` --targets "Id"="1","Arn"="queue-arn"
    注意

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

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