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

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

CloudWatch 指标

Amazon CloudWatch 指标组件 (aws.greengrass.Cloudwatch)将 Greengrass 核心设备中的自定义指标发布到 Amazon CloudWatch。组件使组件能够发布 CloudWatch 指标,您可以使用它来监控和分析 Greengrass 核心设备的环境。有关更多信息,请参阅 。使用 Amazon CloudWatch 指标中的Amazon CloudWatch 用户指南.

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

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

注意

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

Versions

此组件具有以下版本:

  • 2.0.x

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

Type

此组件是一个 Lambda 组件(aws.greengrass.lambda)。这些区域有:Greengrass 核心使用运行此组件的 Lambda 函数Lambda 启动器组件.

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

Requirements

此组件有以下要求:

  • 您的核心设备必须满足运行 Lambda 功能的要求。如果您希望核心设备运行容器化 Lambda 功能,设备必须满足要求才能执行此操作。有关更多信息,请参阅运行 Lambda 函数的要求

  • Python安装在核心设备上的 PATH 环境变量中。

  • 这些区域有:Greengrass 设备角色必须允许cloudwatch:PutMetricData操作,如以下 IAM 策略示例所示。

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

    有关更多信息,请参阅 。Amazon CloudWatch 权限参考中的Amazon CloudWatch 用户指南.

  • 若要从此组件接收输出数据,您必须合并旧版订阅路由器组件当您部署此组件时。旧版订阅路由器组件 (aws.greengrass.LegacySubscriptionRouter)是此组件的依赖关系。此配置指定此组件发布响应的主题。

    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" } } }
    • Replace区域使用Amazon Web Services 区域您使用的。

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

    重要

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

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

Dependencies

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

2.0.7

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >=2.5.0 硬性
Lambda 启动器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
Token Token Service ^2.0.0 硬性
2.0.6

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >=2.0.0 硬性
Lambda 启动器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
Token Token Service ^2.0.0 硬性
2.0.5

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >=2.3.0 硬性
Lambda 启动器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
Token Token Service ^2.0.0 硬性
2.0.4

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >=2.2.0 硬性
Lambda 启动器 ^2.0.0 硬性
Lambda 运行时 ^2.0.0 软性
Token Token Service ^2.0.0 硬性
2.0.3

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

依赖关系 兼容的版本 依赖关系类型
Greengrass 核心 >2.1.0 硬性
Lambda 启动器 > =1.0.0 硬性
Lambda 运行时 > =1.0.0 软性
Token Token Service > =1.0.0 硬性

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

Configuration

此组件提供了以下配置参数,您可以在部署组件时自定义这些参数。

注意

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

lambdaParams

包含此组件的 Lambda 函数参数的对象。此对象包含以下信息:

EnvironmentVariables

包含 Lambda 函数的参数的对象。此对象包含以下信息:

PUBLISH_INTERVAL

(可选)组件发布给定命名空间的批处理指标之前等待的最长秒数。要将组件配置为在收到指标时发布指标(也就是说不进行批处理),请指定0.

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

注意

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

此值最多可以是 900 秒。

默认值:10 秒

MAX_METRICS_TO_RETAIN

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

此限制适用于核心设备没有 Internet 连接的情况,因此组件会缓冲要发布的指标的情况。当缓冲区已满时,组件会用较新的指标替换最旧的指标。给定命名空间中的指标仅替换同一命名空间中的指标。

注意

如果组件的主机进程中断,则组件不会保存度量。例如,在部署期间或核心设备重新启动时可能会发生这种情况。

此值必须至少为 2,000 个量度。

默认值:5,000 个指标

PUBLISH_REGION

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

containerMode

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

  • NoContainer— 组件不在隔离的运行时环境中运行。

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

默认值:GreengrassContainer

containerParams

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

此对象包含以下信息:

memorySize

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

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

pubsubTopics

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

此对象包含以下信息:

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

包含以下信息的对象:

type

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

  • Pubsub – 订阅本地发布/订阅消息。如果选择此选项,则主题不能包含 MQTT 通配符。有关如何在指定此选项时从自定义组件发送消息的更多信息,请参阅发布/订阅本地消息.

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

默认值:Pubsub

topic

(可选)组件订阅以接收消息的主题。如果您指定IotCore对于 来说为type,您可以使用 MQTT 通配符(+#)。

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

{ "containerMode": "GreengrassContainer" }

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

{ "containerMode": "NoContainer" }

输入数据

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

默认主题(本地发布/订阅): cloudwatch/metric/put

该消息接受以下属性。输入消息必须采用 JSON 格式。

request

此消息中的指标。

请求对象包含要发布到 CloudWatch 的指标数据。指标值必须符合PutMetricDataoperation.

类型: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 个维度。

类型:array的对象,其中每个对象均包含以下信息:

name

(可选)维度名称。

类型:string

value

(可选)维度值。

类型:string

timestamp

(可选)接收指标数据的时间,以 Unix 纪元时间为单位,以秒为单位。

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

类型:integer

注意

当您在单个 Lambda 函数中发送多个指标时,我们建议您分别检索每个指标的时间戳。不要使用变量来存储时间戳。

unit

(可选)指标的单位。

类型:string

有效值:SecondsMicrosecondsMillisecondsBytesKilobytesMegabytesGigabytesTerabytesBitsKilobitsMegabitsGigabitsTerabitsPercentCountBytes/SecondKilobytes/SecondMegabytes/SecondGigabytes/SecondTerabytes/SecondBits/SecondKilobits/SecondMegabits/SecondGigabits/SecondTerabits/SecondCount/SecondNone

默认值为 None

注意

适用于 CloudWatch 的所有配额PutMetricDataAPI 应用于使用此组件发布的指标。以下配额尤其重要:

  • 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" } } }

输出数据

默认情况下,此组件将响应发布为以下 MQTT 主题上的输出数据。您必须将此主题指定为subject配置中的旧版订阅路由器组件. 有关如何在自定义组件中订阅有关此主题的消息的更多信息,请参阅。发布/订阅Amazon IoT CoreMQTT 消息.

默认主题 (Amazon IoT CoreMQTT): cloudwatch/metric/put/status

例 输出示例:成功

响应包含指标数据的命名空间和RequestId字段中 CloudWatch 示的信息。

{ "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" } }
注意

如果组件检测到可重试的错误(如连接错误),它会在下一批处理中重试发布。

Licenses

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

此组件在Greengrass 核心软件许可协议.

Changelog

下表介绍每一版的中的更改。

Version

更改

2.0.7

已更新适用于 Greengrass 原核 2.4.0 版发行。

2.0.6

已更新适用于 Greengrass 原核 2.3.0 版发行。

2.0.5

已更新适用于 Greengrass 原核 2.2.0 版发行。

2.0.4

已更新适用于 Greengrass 原核 2.1.0 版发行。

2.0.3

初始版本。

另请参阅