CloudWatch 指标 - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

CloudWatch 指标

亚马逊 CloudWatch 指标组件 (aws.greengrass.Cloudwatch) 向亚马逊发布来自 Greengrass 核心设备的自定义指标 CloudWatch。该组件允许组件发布 CloudWatch 指标,您可以使用这些指标来监视和分析 Greengrass 核心设备的环境。有关更多信息,请参阅《亚马逊 CloudWatch 用户指南》中的使用亚马逊 CloudWatch指标

要使用此组件发布 CloudWatch 指标,请向该组件订阅的主题发布消息。默认情况下,此组件订阅cloudwatch/metric/put本地发布/订阅主题。部署此组件时,您可以指定其他主题,包括Amazon IoT Core MQTT 主题。

此组件对位于相同命名空间中的指标进行批处理,并定期将其发布到 CloudWatch 。

注意

此组件提供与Amazon IoT Greengrass V1 中的 CloudWatch 指标连接器类似的功能。有关更多信息,请参阅 Amazon IoT GreengrassV1 开发者指南中的CloudWatch 指标连接器

版本

此组件有以下版本:

  • 3.1.x

  • 3.0.0

  • 2.1.x

  • 2.0.0.x

有关每个版本组件变更的信息,请参阅变更日志

类型

v3.x

组件是通用组件 (aws.greengrass.generic)。 Greengrass 核心运行组件的生命周期脚本。

v2.x

组件是 Lambda 组件 (aws.greengrass.lambda)。 Greengrass 核心使用 Lambda 启动器组件运行该组件的 Lambda 函数。

有关更多信息,请参阅 组件类型

操作系统

v3.x

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

v2.x

此组件只能安装在 Linux 核心设备上。

要求

此组件有以下要求:

3.x
2.x
  • 您的核心设备必须满足运行 Lambda 函数的要求。如果您希望核心设备运行容器化 Lambda 函数,则该设备必须满足要求才能运行容器化 Lambda 函数。有关更多信息,请参阅 Lambda 函数的要求

  • Python 版本 3.7 已安装在核心设备上并添加到 PATH 环境变量中。

  • cloudwatch:PutMetricData

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }

    有关更多信息,请参阅《亚马逊 CloudWatch 用户指南》中的亚马逊 CloudWatch权限参考

  • 要从此组件接收输出数据,在部署此组件时,必须合并旧版订阅路由器组件 (aws.greengrass.LegacySubscriptionRouter) 的以下配置更新。此配置指定了此组件发布响应的主题。

    Legacy subscription router v2.1.xLegacy subscription router v2.0.x
    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-cloudwatch": { "id": "aws-greengrass-cloudwatch", "source": "component:aws.greengrass.Cloudwatch", "subject": "cloudwatch/metric/put/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-cloudwatch": { "id": "aws-greengrass-cloudwatch", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-cloudwatch:version", "subject": "cloudwatch/metric/put/status", "target": "cloud" } } }
    • 用你Amazon Web Services 区域使用的区域替换区域

    • Lambda。要查找 Lambda 函数版本,您必须查看要部署的此组件版本的配方。在Amazon IoT Greengrass控制台中打开此组件的详细信息页面,查找 Lambda 函数的键值对。此键值对包含 Lambda 函数的名称和版本。

    重要

    每次部署此组件时,都必须更新传统订阅路由器上的 Lambda 函数版本。这可确保您为部署的组件版本使用正确的 Lambda 函数版本。

    有关更多信息,请参阅 创建部署

端点和端口

除了基本操作所需的端点和端口外,此组件还必须能够向以下端点和端口执行出站请求。有关更多信息,请参阅 允许设备通过代理或防火墙进行流量

Endpoint 端口 必填 描述

monitoring.region.amazonaws.com

443

上传 CloudWatch 指标。

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

3.0.0 - 3.1.0

下表列出了此组件版本 3.0.0 到 3.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0.0 <3.0.0 软性
代币交换服务 >=0.0.0 硬性
2.1.2

2.1.2。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.1.1

2.1.1。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.8 - 2.1.0

下表列出了此组件版本 2.0.8 到 2.1.0 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.7

下表列出了此组件版本 2.0.7 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.6

下表列出了此组件版本 2.0.6 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.5

下表列出了此组件版本 2.0.5 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.4

下表列出了此组件 2.0.4 版的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.0 硬性
Lambda 发射器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
代币交换服务 ^2.0.0 硬性
2.0.3

下表列出了此组件版本 2.0.3 的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >0.3 硬性
Lambda 发射器 >0.0 硬性
Lambda 运行时 >0.0 软性
代币交换服务 >0.0 硬性

有关组件依赖关系的更多信息,请参阅组件配方参考

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

v3.x
PublishInterval

(可选)组件发布给定命名空间的批量指标之前等待的最大秒数。要将组件配置为在收到指标时发布指标(这意味着不进行批处理),请指定0

该组件 CloudWatch 在同一命名空间中收到 20 个指标后或在您指定的间隔之后发布到。

注意

该组件未指定事件的发布顺序。

900。

默认值:10 秒

MaxMetricsToRetain

(可选)在组件用较新的指标替换所有命名空间的指标之前,要保存在内存中的最大指标数。

此限制适用于核心设备未连接到互联网的情况,因此组件会缓冲指标以便稍后发布。当缓冲区已满时,组件会将最旧的指标替换为较新的指标。给定命名空间中的指标仅替换同一命名空间中的指标。

注意

如果组件的主机进程中断,则该组件不会保存指标。例如,这可能发生在部署期间或核心设备重启时。

此值必须至少为 2,000 个指标。

:5000

InputTopic

(可选)组件订阅以接收消息的主题。如果您指定truePubSubToIoTCore,则可以在本主题中使用 MQTT 通配符(+ 和 #)。

默认值:cloudwatch/metric/put

OutputTopic

(可选)组件向其发布状态响应的主题。

默认值:cloudwatch/metric/put/status

PubSubToIoTCore

(可选)定义是否发布和订阅Amazon IoT Core MQTT 主题的字符串值。支持的值为 truefalse

默认值:false

UseInstaller

(可选)布尔值,用于定义是否使用此组件中的安装程序脚本来安装此组件的 SDK 依赖关系。

false如果您想使用自定义脚本安装依赖关系,或者想要在预构建的 Linux 映像中包含运行时依赖关系,请将此值设置为。要使用此组件,必须安装以下库,包括任何依赖关系,并将其提供给默认 Greengrass 系统用户。

默认值:true

PublishRegion

(可选)Amazon Web Services 区域向其发布 CloudWatch 指标。此值会覆盖核心设备的默认区域。只有跨区域指标需要此参数。

accessControl

(可选)包含授权策略的对象,该策略允许组件发布和订阅指定主题。如果为InputTopic和指定自定义值OutputTopic,则必须更新此对象中的资源值。

默认值:

{ "aws.greengrass.ipc.pubsub": { "aws.greengrass.Cloudwatch:pubsub:1": { "policyDescription": "Allows access to subscribe to input topics.", "operations": [ "aws.greengrass#SubscribeToTopic" ], "resources": [ "cloudwatch/metric/put" ] }, "aws.greengrass.Cloudwatch:pubsub:2": { "policyDescription": "Allows access to publish to output topics.", "operations": [ "aws.greengrass#PublishToTopic" ], "resources": [ "cloudwatch/metric/put/status" ] } }, "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.Cloudwatch:mqttproxy:1": { "policyDescription": "Allows access to subscribe to input topics.", "operations": [ "aws.greengrass#SubscribeToIoTCore" ], "resources": [ "cloudwatch/metric/put" ] }, "aws.greengrass.Cloudwatch:mqttproxy:2": { "policyDescription": "Allows access to publish to output topics.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "cloudwatch/metric/put/status" ] } } }

例 示例:配置合并更新

{ "PublishInterval": 0, "PubSubToIoTCore": true }
v2.x
注意

此组件的默认配置包括 Lambda 函数参数。我们建议您仅编辑以下参数以在您的设备上配置此组件。

lambdaParams

一个包含此组件的 Lambda 函数参数的对象。Configurations:

EnvironmentVariables

Lambda。Configurations:

PUBLISH_INTERVAL

(可选)组件发布给定命名空间的批量指标之前等待的最大秒数。要将组件配置为在收到指标时发布指标(这意味着不进行批处理),请指定0

该组件 CloudWatch 在同一命名空间中收到 20 个指标后或在您指定的间隔之后发布到。

注意

该组件不保证事件的发布顺序。

900。

默认值:10 秒

MAX_METRICS_TO_RETAIN

(可选)在组件用较新的指标替换所有命名空间的指标之前,要保存在内存中的最大指标数。

此限制适用于核心设备未连接到互联网的情况,因此组件会缓冲指标以便稍后发布。当缓冲区已满时,组件会将最旧的指标替换为较新的指标。给定命名空间中的指标仅替换同一命名空间中的指标。

注意

如果组件的主机进程中断,则该组件不会保存指标。例如,这可能发生在部署期间或核心设备重启时。

此值必须至少为 2,000 个指标。

:5000

PUBLISH_REGION

(可选)Amazon Web Services 区域向其发布 CloudWatch 指标。此值会覆盖核心设备的默认区域。只有跨区域指标需要此参数。

containerMode

(可选)此组件的容器化模式。从以下选项中进行选择:

  • NoContainer—。

  • GreengrassContainer— 该组件在Amazon IoT Greengrass容器内的隔离运行时环境中运行。

默认值:GreengrassContainer

containerParams

(可选)包含此组件容器参数的对象。如果您指定GreengrassContainer,则组件将使用这些参数containerMode

Configurations:

memorySize

(可选)分配给组件的内存量(以千字节为单位)。

默认为 64 MB (65,535 KB)。

pubsubTopics

(可选)包含组件订阅以接收消息的主题的对象。您可以指定每个主题以及该组件是订阅来自Amazon IoT Core还是本地发布/订阅主题的 MQTT 主题。

Configurations:

0— 这是字符串形式的数组索引。

():

type

(可选)此组件用于订阅消息的发布/订阅消息的类型。从以下选项中进行选择:

  • Pubsub – 订阅本地发布/订阅消息。MQTT。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅本地消息

  • IotCore – 订阅 Amazon IoT Core MQTT 消息。如果选择此选项,则主题可以包含 MQTT 通配符。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅Amazon IoT CoreMQTT 消息

默认值:Pubsub

topic

(可选)组件订阅以接收消息的主题。如果您指定IotCoretype,则可以在本主题中使用 MQTT 通配符(+#)。

例 示例:配置合并更新(容器模式)

{ "containerMode": "GreengrassContainer" }

例 示例:配置合并更新(无容器模式)

{ "containerMode": "NoContainer" }

输入数据

此组件接受以下主题的指标,并将指标发布到 CloudWatch。Configurations。 有关如何从自定义组件向该组件发布消息的更多信息,请参阅发布/订阅本地消息

从组件版本 v3.0.0 开始,您可以选择通过将配置参数设置为,将此组件PubSubToIoTCore配置为订阅 MQTT 主题true。有关向自定义组件中的 MQTT 主题发布消息的更多信息,请参阅发布/订阅Amazon IoT CoreMQTT 消息

默认主题:cloudwatch/metric/put

该消息接受以下属性。JSON。

request

此消息中的指标。

请求对象包含要发布到 CloudWatch 的指标数据。指标值必须符合PutMetricData操作规范。

类型:object包含以下信息:

namespace

此请求中指标数据的用户定义命名空间。 CloudWatch 使用命名空间作为指标数据点的容器。

注意

您不能指定以保留字符串开头的命名空间AWS/

类型:string

有效模式:[^:].*

metricData

指标的数据。

类型:object包含以下信息:

metricName

指标的名称。

类型:string

value

指标的值。

注意

CloudWatch 拒绝太小或太大的值。该值必须介于8.515920e-1091.174271e+108(以 10 为基数)或2e-3602e360(以 2 为基数)之间。 CloudWatch 不支持NaN+Infinity、和等特殊值-Infinity

类型:double

dimensions

(可选)指标的维度。维度提供有关指标及其数据的附加信息。指标最多可定义 10 个维度。

此组件自动包含一个名为的维度coreName,其中值是核心设备的名称。

类型:array每个对象都包含以下信息的对象:

name

(可选)维度名称。

类型:string

value

(可选)维度值。

类型:string

timestamp

()Unix timestamp()。

默认为组件收到消息的时间。

类型:double

注意

如果您使用此组件的 2.0.3 和 2.0.7 版本之间,我们建议您在从单个来源发送多个指标时分别检索每个指标的时间戳。不要使用变量来存储时间戳。

unit

(可选)指标的单位。

类型:string

有效值:SecondsMicrosecondsMillisecondsBytesKilobytesMegabytesGigabytesTerabytesBitsKilobitsMegabitsGigabitsTerabitsPercentCountBytes/SecondKilobytes/SecondMegabytes/SecondGigabytes/SecondTerabytes/SecondBits/SecondKilobits/SecondMegabits/Second,Gigabits/Second,Terabits/Second,Count/Second,None

默认值为 None

注意

适用于 CloudWatch PutMetricData API 的所有配额都适用于您使用此组件发布的指标。Configurations:

  • API 有效负载的限制为 40 KB

  • 每个 API 请求的 20 个指标

  • PutMetricData API 的每秒 150 个事务 (TPS)

有关更多信息,请参阅CloudWatch 用户指南中的CloudWatch 服务配额

例 示例输入

{ "request": { "namespace": "Greengrass", "metricData": { "metricName": "latency", "dimensions": [ { "name": "hostname", "value": "test_hostname" } ], "timestamp": 1539027324, "value": 123.0, "unit": "Seconds" } } }

输出数据

默认情况下,此组件将响应作为输出数据发布到以下本地发布/订阅主题上。 有关如何在自定义组件中订阅有关此主题的消息的更多信息,请参阅发布/订阅本地消息

您可以选择将配置参数设置为,将此组件PubSubToIoTCore配置为发布到 MQTT 主题true。有关在自定义组件中订阅有关 MQTT 主题的消息的更多信息,请参阅发布/订阅Amazon IoT CoreMQTT 消息

注意

默认情况下,组件版本 2.0.x 将响应作为 MQTT 主题的输出数据发布。您必须在传统订阅路由器组件的配置subject中将主题指定为。

默认主题:cloudwatch/metric/put/status

例 输出示例:成功

响应包括指标数据的命名空间和 CloudWatch 响应中的RequestId字段。

{ "response": { "cloudwatch_rid": "70573243-d723-11e8-b095-75ff2EXAMPLE", "namespace": "Greengrass", "status": "success" } }

例 输出示例:失败

{ "response" : { "namespace": "Greengrass", "error": "InvalidInputException", "error_message": "cw metric is invalid", "status": "fail" } }
注意

如果组件检测到可以重试的错误,例如连接错误,则它会在下一批中重试发布。

许可证

此组件包括以下第三方软件/许可:

此组件根据 Greengrass 核心软件许可协议发布。

本地

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/aws.greengrass.Cloudwatch.log
Windows
C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log

查看此组件的日志

  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.Cloudwatch.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.Cloudwatch.log -Tail 10 -Wait

更改日志

Configurations()。

v3.x

Version

变更

3.1.0

Bug fixes and improvements

3.0.0

此版本的 CloudWatch 指标组件需要与版本 2.x 不同的配置参数。如果您使用版本 2.x 的非默认配置,并且想要从 v2.x 升级到 v3.x,则必须更新组件的配置。CloudWatch。

新功能
  • 增加了对运行 Windows 的核心设备的支持。

  • 将组件类型从 Lambda 组件更改为通用组件。此组件现在不再依赖传统订阅路由器组件来创建订阅。

  • 添加新的InputTopic配置参数来指定组件订阅的接收消息的主题。

  • 添加新的OutputTopic配置参数以指定组件向其发布状态响应的主题。

  • 添加新的PubSubToIoTCore配置参数以指定是否发布和订阅Amazon IoT Core MQTT 主题。

  • 添加了新的UseInstaller配置参数,允许您选择禁用安装组件依赖项的安装脚本。

Bug fixes and improvements

增加了对输入数据中重复时间戳的支持。

v2.x

Version

变更

2.1.2

Greengrass Nucleus 2.7.0。

2.1.1

Greengrass Nucleus 2.6.0。

2.1.0

新功能

2.0.8

Bug fixes and improvements
  • 增加了对输入数据中重复时间戳的支持。

  • Greengrass Nucleus 2.5.0。

2.0.7

Greengrass Nucleus 2.4.0。

2.0.6

Greengrass Nucleus 2.3.0。

2.0.5

Greengrass Nucleus 2.2.2.2.0。

2.0.4

Greengrass Nucleus 2.1.0。

2.0.3

初始版本。

另请参阅