Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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 Greengrass V1 开发者指南》中的CloudWatch 指标连接器。
版本
此组件有以下版本:
有关每个版本组件变更的信息,请参阅变更日志。
类型
- v3.x
-
此组件是一个通用组件 (aws.greengrass.generic
)。Greengrass 核心运行组件的生命周期脚本。
- v2.x
-
此组件是一个 Lambda 组件 () aws.greengrass.lambda
。Greengrass 核心使用 Lambda 启动器组件运行此组件的 Lambda 函数。
有关更多信息,请参阅 组件类型。
操作系统
- v3.x
-
- v2.x
-
此组件只能安装在 Linux 核心设备上。
要求
此组件具有以下要求:
- 3.x
-
- 2.x
-
-
您的核心设备必须满足运行 Lambda 函数的要求。如果您希望核心设备运行容器化的 Lambda 函数,则该设备必须满足要求。有关更多信息,请参阅 Lambda 函数要求。
-
Python 版本 3.7 安装在核心设备上并已添加到PATH环境变量中。
-
Greengrass 设备角色必须允许cloudwatch:PutMetricData
该操作,如以下示例策略所示。IAM
{
"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"
}
}
}
-
Replace(替换) region
用你使用的 Amazon Web Services 区域 那个。
-
Replace(替换) version
使用此组件运行的 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 版本的依赖关系。
- 2.1.4 - 2.1.8
-
下表列出了此组件版本 2.1.4 和 2.1.8 的依赖关系。
- 2.1.2 - 2.1.3
-
下表列出了此组件版本 2.1.2 和 2.1.3 的依赖关系。
- 2.1.1
-
下表列出了此组件版本 2.1.1 的依赖关系。
- 2.0.8 - 2.1.0
-
下表列出了此组件版本 2.0.8 到 2.1.0 的依赖关系。
- 2.0.7
-
下表列出了此组件版本 2.0.7 的依赖关系。
- 2.0.6
-
下表列出了此组件版本 2.0.6 的依赖关系。
- 2.0.5
-
下表列出了此组件版本 2.0.5 的依赖关系。
- 2.0.4
-
下表列出了此组件版本 2.0.4 的依赖关系。
- 2.0.3
-
下表列出了此组件版本 2.0.3 的依赖关系。
有关组件依赖关系的更多信息,请参阅组件配方参考。
配置
此组件提供以下配置参数,您可以在部署该组件时对其进行自定义。
- v3.x
-
-
PublishInterval
-
(可选)在组件发布给定命名空间的批处理指标之前等待的最大秒数。要将组件配置为在收到指标时发布指标(这意味着不进行批处理),请指定0
。
该组件在同一命名空间中收到 20 个指标之后或在您指定的间隔之后发布到。 CloudWatch
此值最多可为 900 秒。
默认值:10 秒
-
MaxMetricsToRetain
-
(可选)在组件用较新的指标替换所有命名空间的指标之前,要在内存中保存的最大指标数。
当核心设备没有连接到互联网时,此限制适用,因此组件会缓冲指标以供日后发布。当缓冲区已满时,该组件会将最旧的指标替换为较新的指标。给定命名空间中的指标仅替换同一命名空间中的指标。
如果组件的主机进程中断,则该组件不会保存指标。例如,这可能发生在部署期间或核心设备重启时。
此值必须至少为 2,000 个指标。
默认值:5,000 个指标
InputTopic
-
(可选)组件订阅以接收消息的主题。如果您true
为指定PubSubToIoTCore
,则可以在本主题中使用MQTT通配符(+ 和 #)。
默认:cloudwatch/metric/put
OutputTopic
-
(可选)组件向其发布状态响应的主题。
默认:cloudwatch/metric/put/status
PubSubToIoTCore
-
(可选)定义是否发布和订阅 Amazon IoT Core MQTT主题的字符串值。支持的值为 true
和 false
。
默认: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 函数参数的对象。该对象包含以下信息:
-
EnvironmentVariables
-
一个包含 Lambda 函数参数的对象。该对象包含以下信息:
-
PUBLISH_INTERVAL
-
(可选)在组件发布给定命名空间的批处理指标之前等待的最大秒数。要将组件配置为在收到指标时发布指标(这意味着不进行批处理),请指定0
。
该组件在同一命名空间中收到 20 个指标之后或在您指定的间隔之后发布到。 CloudWatch
此值最多可为 900 秒。
默认值:10 秒
-
MAX_METRICS_TO_RETAIN
-
(可选)在组件用较新的指标替换所有命名空间的指标之前,要在内存中保存的最大指标数。
当核心设备没有连接到互联网时,此限制适用,因此组件会缓冲指标以供日后发布。当缓冲区已满时,该组件会将最旧的指标替换为较新的指标。给定命名空间中的指标仅替换同一命名空间中的指标。
如果组件的主机进程中断,则该组件不会保存指标。例如,这可能发生在部署期间或核心设备重启时。
此值必须至少为 2,000 个指标。
默认值:5,000 个指标
-
PUBLISH_REGION
-
(可选) Amazon Web Services 区域 要向其发布 CloudWatch 指标的。此值将覆盖核心设备的默认区域。只有跨区域指标才需要此参数。
containerMode
-
(可选)此组件的容器化模式。从以下选项中进行选择:
默认:GreengrassContainer
-
containerParams
-
(可选)包含此组件容器参数的对象。如果您为指定GreengrassContainer
,则该组件将使用这些参数containerMode
。
该对象包含以下信息:
-
memorySize
-
(可选)要分配给组件的内存量(以千字节为单位)。
默认为 64 MB (65,535 KB)。
pubsubTopics
-
(可选)一个对象,其中包含组件订阅以接收消息的主题。您可以指定每个主题以及该组件是订阅的主题 Amazon IoT Core 还是本地发布/订阅MQTT主题。
该对象包含以下信息:
0
— 这是字符串形式的数组索引。
-
包含以下信息的对象:
type
-
(可选)此组件用于订阅消息的发布/订阅消息的类型。从以下选项中进行选择:
-
PUB_SUB
– 订阅本地发布/订阅消息。如果选择此选项,则主题不能包含MQTT通配符。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅本地消息。
-
IOT_CORE
— 订阅 Amazon IoT Core MQTT消息。如果选择此选项,则主题可以包含MQTT通配符。有关在指定此选项时如何从自定义组件发送消息的更多信息,请参阅发布/订阅消息 Amazon IoT Core MQTT。
默认:PUB_SUB
topic
-
(可选)组件订阅以接收消息的主题。如果您IotCore
为指定type
,则可以在本主题中使用MQTT通配符(+
和#
)。
例 示例:配置合并更新(容器模式)
{
"containerMode": "GreengrassContainer"
}
例 示例:配置合并更新(无容器模式)
{
"containerMode": "NoContainer"
}
此组件接受有关以下主题的指标并将这些指标发布到 CloudWatch。默认情况下,此组件订阅本地发布/订阅消息。有关如何从您的自定义组件向该组件发布消息的更多信息,请参阅发布/订阅本地消息。
从组件版本 v3.0.0 开始,您可以选择通过将配置参数设置为,将此组件PubSubToIoTCore
配置为订阅MQTT主题。true
有关向自定义组件中的MQTT主题发布消息的更多信息,请参阅发布/订阅消息 Amazon IoT Core MQTT。
默认主题:cloudwatch/metric/put
该消息接受以下属性。输入消息必须是JSON格式化的。
-
request
-
此消息中的指标。
请求对象包含要发布到的指标数据 CloudWatch。指标值必须符合PutMetricData
操作规范。
类型:其中object
包含以下信息:
-
namespace
-
此请求中指标数据的用户定义命名空间。 CloudWatch 使用命名空间作为指标数据点的容器。
类型:string
有效模式:[^:].*
-
metricData
-
指标的数据。
类型:其中object
包含以下信息:
-
metricName
-
指标的名称。
类型:string
-
value
-
指标的值。
CloudWatch 拒绝太小或太大的值。该值必须介于8.515920e-109
和1.174271e+108
(基数 10)或2e-360
和2e360
(基数 2)之间。 CloudWatch 不支持特殊值NaN
,例如+Infinity
、和-Infinity
。
类型:double
-
dimensions
-
(可选)指标的维度。维度提供有关指标及其数据的附加信息。指标最多可定义 10 个维度。
该组件自动包含一个名为的维度coreName
,其中值是核心设备的名称。
类型:array
每个对象都包含以下信息:
-
name
-
(可选)维度名称。
类型:string
-
value
-
(可选)维度值。
类型:string
-
timestamp
-
(可选)接收指标数据的时间,以 Unix 纪元时间为单位的秒表示。
默认为组件收到消息的时间。
类型:double
如果您在版本 2.0.3 和 2.0.7 之间使用此组件,我们建议您在从单个来源发送多个指标时分别检索每个指标的时间戳。不要使用变量来存储时间戳。
-
unit
-
(可选)指标的单位。
类型:string
有效值:Seconds
、Microseconds
、Milliseconds
、Bytes
、Kilobytes
、Megabytes
、Gigabytes
、Terabytes
、Bits
、Kilobits
、Megabits
、、Gigabits
、Terabits
、Percent
、Count
、Bytes/Second
、Kilobytes/Second
、Megabytes/Second
、Gigabytes/Second
、Terabytes/Second
、Bits/Second
、Kilobits/Second
、Megabits/Second
、Gigabits/Second
、Terabits/Second
、Count/Second
、None
默认值为 None
。
适用于的所有配额都 CloudWatch PutMetricData
API适用于您使用此组件发布的指标。以下配额尤为重要:
有关更多信息,请参阅《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 Core MQTT。
默认情况下,组件版本 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
更改日志
下表描述了该组件的每个版本中的更改。
- v3.x
-
版本
|
更改
|
3.1.0
|
|
3.0.0
|
此版本的 CloudWatch 指标组件需要的配置参数与版本 2.x 不同。如果您使用版本 2.x 的非默认配置,并且想要从 v2.x 升级到 v3.x,则必须更新该组件的配置。有关更多信息,请参阅CloudWatch指标组件配置。
- 新功能
-
-
增加了对运行 Windows 的核心设备的支持。
-
将组件类型从 Lambda 组件更改为通用组件。此组件现在不再依赖旧版订阅路由器组件来创建订阅。
-
添加新的InputTopic 配置参数以指定组件订阅以接收消息的主题。
-
添加新的OutputTopic 配置参数以指定组件向其发布状态响应的主题。
-
添加新的PubSubToIoTCore 配置参数以指定是否发布和订阅 Amazon IoT Core MQTT主题。
-
添加新的UseInstaller 配置参数,允许您选择禁用安装组件依赖项的安装脚本。
- 错误修复和改进
-
添加了对输入数据中重复时间戳的支持。
|
- v2.x
-
版本
|
更改
|
2.1.8
|
Greengrass nucleus 版本 2.13.0 版本的版本已更新。
|
2.1.3
|
Greengrass nucleus 版本 2.11.0 版本的版本已更新。
|
2.1.2
|
Greengrass nucleus 版本 2.7.0 版本的版本已更新。
|
2.1.1
|
Greengrass nucleus 版本 2.6.0 版本的版本已更新。
|
2.1.0
|
|
2.0.8
|
|
2.0.7
|
Greengrass nucleus 版本 2.4.0 版本的版本已更新。
|
2.0.6
|
Greengrass nucleus 版本 2.3.0 版本的版本已更新。
|
2.0.5
|
Greengrass nucleus 版本 2.2.0 版本的版本已更新。
|
2.0.4
|
Greengrass nucleus 版本 2.1.0 版本的版本已更新。
|
2.0.3
|
初始版本。
|
另请参阅