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

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

CloudWatch 指标

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

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

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

注意

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

此组件具有以下版本:

  • 2.0.x

Requirements

此组件具有以下要求:

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

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

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

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

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

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

    • Replace region 替换为您使用的 AWS 区域。

    • Replace version 替换为此组件运行的 Lambda 函数的版本。要查找 Lambda 函数版本,您必须查看要部署的此组件的版本的配方。在 AWS AWS IoT Greengrass 控制台中打开此组件的详细信息页面,然后查找 Lambda 函数键值对。此键/值对包含 Lambda 函数的名称和版本。

    { "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" } } }
    重要

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

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

Configuration

此组件提供您可以自定义的以下配置参数:

注意

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

lambdaParams

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

EnvironmentVariables

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

PUBLISH_INTERVAL

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

在相同命名空间中或在指定的间隔后收到 20 个指标后, 组件将发布到 CloudWatch。

注意

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

此值最多为 900 秒。

默认值:10 秒

MAX_METRICS_TO_RETAIN

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

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

注意

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

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

默认值:5000 个指标

PUBLISH_REGION

(可选) 要将 CloudWatch 指标发布到的 AWS 区域。此值将覆盖核心设备的默认区域。此参数仅对于跨区域指标是必需的。

containerMode

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

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

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

默认值: GreengrassContainer

containerParams

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

此对象包含以下信息:

memorySize

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

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

pubsubTopics

(可选)一个 对象,其中包含组件在其中订阅接收消息的主题。您可以指定每个主题以及组件是订阅 AWS AWS IoT Core 中的 MQTT 主题还是本地发布/订阅主题。

此对象包含以下信息:

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

包含以下信息的对象:

type

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

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

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

默认值: Pubsub

topic

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

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

{ "containerMode": "GreengrassContainer" }

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

{ "containerMode": "NoContainer" }

输入数据

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

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

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

request

此消息中的 指标。

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

类型object:包含以下信息的 :

namespace

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

注意

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

类型: string

有效模式: [^:].*

metricData

指标的数据。

类型object:包含以下信息的 :

metricName

指标的名称。

类型: string

value

指标的值。

注意

CloudWatch 拒绝过小或过大的值。该值必须在 8.515920e-1091.174271e+108 (Base 10) 或 2e-3602e360 (Base 2) 之间。CloudWatch 不支持特殊值NaN,例如 +Infinity、 和 -Infinity

类型: double

dimensions

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

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

name

(可选) 维度名称。

类型: string

value

(可选) 维度值。

类型: string

timestamp

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

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

类型: integer

unit

(可选) 指标的单位。

类型: string

有效值:SecondsMicrosecondsMillisecondsBytesKilobytesMegabytesGigabytesTerabytesBitsKilobits、、MegabitsGigabitsTerabitsPercentCountBytes/Second、、Kilobytes/SecondMegabytes/Second、、Gigabytes/SecondTerabytes/SecondBits/SecondKilobits/SecondMegabits/Second Gigabits/Second Terabits/Second Count/Second None

默认值为 None

注意

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

  • 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传统订阅路由器组件的配置中的 。有关如何在自定义组件中订阅本主题上的消息的更多信息,请参阅发布/订阅 AWS IoT Core MQTT 消息

默认主题 ( AWS IoT Core MQTT): 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" } }
注意

如果组件检测到可重试的错误(例如连接错误),它将重试下一个批次中的发布。

Licenses

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

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

另请参阅