CloudWatch 度量 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CloudWatch 度量

Amazon 指 CloudWatch 標元件 (aws.greengrass.Cloudwatch) 將 Greengrass 核心裝置的自訂指標發佈到 Amazon。 CloudWatch元件可讓元件發佈 CloudWatch 指標,您可以使用這些指標來監視和分析 Greengrass 核心裝置的環境。如需詳細資訊,請參閱 Amazon 使用者指南中的使 CloudWatch 用 Amazon 指 CloudWatch

若要使用此元件發佈 CloudWatch 量度,請將訊息發佈至此元件訂閱的主題。依預設,此元件會訂閱cloudwatch/metric/put本機發佈/訂閱主題。您可以在部署此元件時指定其他主題,包括 AWS IoT Core MQTT 主題。

此元件會批次 CloudWatch 處理位於相同命名空間的測量結果,並定期將其發佈至。

注意

此元件提供與 AWS IoT Greengrass V1 中 CloudWatch 度量連接器類似的功能。如需詳細資訊,請參閱 AWS IoT Greengrass V1 開發人員指南中的CloudWatch 度量連接器

版本

此元件具有下列版本:

  • 3.1.x 版本

  • 3.0.x

  • 2.1.x

  • 2.0.x

如需元件每個版本中變更的相關資訊,請參閱變更記錄檔

Type

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 函數要求

  • Python 版本 3.7 安裝在核心設備上,並添加到 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.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" } } }
    • 區域替換為您 AWS 區域 使用的區域。

    • 版本取代為此元件執行的 Lambda 函數版本。若要尋找 Lambda 函數版本,您必須檢視要部署之此元件版本的方案。在AWS IoT Greengrass 主控台中開啟此元件的詳細資料頁面,然後尋找 Lambda 函數索引鍵值組。此鍵值對包含 Lambda 函數的名稱和版本。

    重要

    每次部署此元件時,您都必須更新舊版訂閱路由器上的 Lambda 函數版本。這可確保您針對部署的元件版本使用正確的 Lambda 函數版本。

    如需詳細資訊,請參閱 建立部署

端點和連接埠

除了基本作業所需的端點和連接埠之外,此元件還必須能夠對下列端點和連接埠執行輸出要求。如需詳細資訊,請參閱 允許裝置流量透過 Proxy 或防火牆

端點 連線埠 必要 描述

monitoring.region.amazonaws.com

443

上傳 CloudWatch 指標。

相依性

部署元件時, AWS IoT Greengrass 也會部署其相依性的相容版本。這表示您必須符合元件及其所有相依性的需求,才能成功部署元件。本節列出此元件之已發行版本的相依性,以及定義每個相依性之元件版本的語意版本條件約束。您也可以在AWS IoT Greengrass 主控台中檢視元件每個版本的相依性。在元件詳細資料頁面上,尋找 [相依性] 清單。

3.0.0 - 3.1.0

下表列出此元件 3.0.0 至 3.1.0 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 軟式
代幣交換服務 >=0.0.0 硬式
2.1.2 and 2.1.3

下表列出此元件 2.1.2 和 2.1.3 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.1.1

下表列出此元件 2.1.1 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.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 核 >=2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.0.7

下表列出此元件 2.0.7 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.0.6

下表列出此元件 2.0.6 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.0.5

下表列出此元件 2.0.5 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.0.4

下表列出此元件 2.0.4 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.0 硬式
发 Lambda 器 ^2.0.0 硬式
Lambda 執行階段 ^2.0.0 軟式
代幣交換服務 ^2.0.0 硬式
2.0.3

下表列出此元件 2.0.3 版的相依性。

相依性 兼容版本 相依性類型
Greengrass 核 > = 2.0.3 硬式
发 Lambda 器 >=1.0.0 硬式
Lambda 執行階段 >=1.0.0 軟式
代幣交換服務 >=1.0.0 硬式

如需有關元件相依性的詳細資訊,請參閱元件方案參考

組態

此元件提供下列組態參數,您可以在部署元件時自訂這些參數。

v3.x
PublishInterval

(選擇性) 元件發佈指定命名空間的批次測量結果之前,等待的秒數上限。若要將元件設定為在接收測量結果時發佈測量結果 (也就是說不進行批次處理),請指定0

元件會在接收到相同命名空間中的 20 個度量之後,或在您指定的間隔之後發佈到。 CloudWatch

注意

組件不會指定事件發佈的順序。

這個值最多可以是 900 秒。

預設值:10 秒

MaxMetricsToRetain

(選擇性) 元件以較新的測量結果取代之前,所有命名空間要儲存在記憶體中的測量結果數目上限。

當核心裝置沒有網際網路連線時,會套用此限制,因此元件會緩衝稍後要發佈的指標。當緩衝區已滿時,元件會以較新的測量結果取代最舊的測量結果。指定命名空間中的度量只會取代相同命名空間中的度量。

注意

如果元件的主機程序中斷,則元件不會儲存度量。例如,在部署期間或核心裝置重新啟動時,可能會發生這種情況。

此值必須至少為 2,000 個量度。

預設值:5,000 個量度

InputTopic

(選擇性) 元件訂閱接收訊息的主題。如果您指定truePubSubToIoTCore,您可以在本主題中使用 MQTT 萬用字元 (+ 和 #)。

預設:cloudwatch/metric/put

OutputTopic

(可選)組件發布狀態響應的主題。

預設:cloudwatch/metric/put/status

PubSubToIoTCore

(選用) 定義是否要發佈和訂閱 AWS IoT Core MQTT 主題的字串值。支援的值為 truefalse

預設:false

UseInstaller

(選擇性) Boolean 值,定義是否使用此元件中的安裝程式指令碼來安裝此元件的 SDK 相依性。

false如果您想要使用自訂指令碼安裝相依性,或者想要在預先建置的 Linux 映像檔中包含執行階段相依性,請將此值設定為。若要使用此元件,您必須安裝下列程式庫 (包括任何相依性),並讓預設的 Greengrass 系統使用者可以使用這些程式庫。

預設:true

PublishRegion

(選擇性) AWS 區域 要發佈 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

(選擇性) AWS 區域 要發佈 CloudWatch 量度的目標。此值會覆寫核心裝置的預設區域。只有跨區域量度才需要此參數。

containerMode

(選擇性) 此元件的容器化模式。您可以從以下選項中選擇:

  • NoContainer— 元件不會在隔離的執行階段環境中執行。

  • GreengrassContainer— 元件在 AWS IoT Greengrass 容器內的隔離執行階段環境中執行。

預設:GreengrassContainer

containerParams

(選擇性) 包含此元件之容器參數的物件。如果您指定GreengrassContainer為,則元件會使用這些參數containerMode

此物件包含下列資訊:

memorySize

(選擇性) 配置給元件的記憶體容量 (以 KB 為單位)。

預設值為 64 MB。

pubsubTopics

(選擇性) 包含元件訂閱以接收訊息之主題的物件。您可以指定每個主題,以及元件是否訂閱 MQTT 主題 AWS IoT Core 或本機發佈/訂閱主題。

此物件包含下列資訊:

0-這是一個數組索引作為一個字符串。

包含下列資訊的物件:

type

(選擇性) 此元件用來訂閱訊息的發佈/訂閱訊息類型。您可以從以下選項中選擇:

  • PUB_SUB - 訂閱本機發佈/訂閱訊息。如果您選擇此選項,則主題不能包含 MQTT 萬用字元。如需指定此選項時如何從自訂元件傳送郵件的詳細資訊,請參閱發佈/訂閱本地訊息

  • IOT_CORE— 訂閱 AWS IoT Core MQTT 訊息。如果您選擇此選項,主題可以包含 MQTT 萬用字元。如需指定此選項時如何從自訂元件傳送郵件的詳細資訊,請參閱發布/訂閱MQTT 訊 AWS IoT Core 息

預設:PUB_SUB

topic

(選擇性) 元件訂閱接收訊息的主題。如果您指定IotCoretype,您可以在本主題中使用 MQTT 萬用字元 (+#)。

範例:組態合併更新 (容器模式)
{ "containerMode": "GreengrassContainer" }
範例:組態合併更新 (無容器模式)
{ "containerMode": "NoContainer" }

輸入資料

此元件接受下列主題的測量結果,並將量度發佈至 CloudWatch。根據預設,此元件會訂閱本機發佈/訂閱訊息。如需如何從自訂元件將訊息發佈至此元件的詳細資訊,請參閱發佈/訂閱本地訊息

從元件版本 v3.0.0 開始,您可以選擇性地將此元件設定為訂閱 MQTT 主題,方法是將組態參數設定PubSubToIoTCore為。true如需有關在自訂元件中將訊息發佈至 MQTT 主題的詳細資訊,請參閱。發布/訂閱MQTT 訊 AWS IoT Core 息

預設主題: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 紀元時間的秒數。

預設為元件接收訊息的時間。

類型: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 的所有配額都會套用至您使用此元件發佈的量度。下列配額特別重要:

  • 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 主題訊息的詳細資訊,請參閱。發布/訂閱MQTT 訊 AWS IoT Core 息

注意

依預設,元件版本 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
若要檢視此元件的記錄
  • 在核心裝置上執行下列命令,即時檢視此元件的記錄檔。以 AWS IoT Greengrass 根資料夾的路徑取代/greengrass/v2C:\greengrass\v2

    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

變更記錄

下表說明元件每個版本的變更。

v3.x

版本

變更

3.1.0

錯誤修復和改進

3.0.0

此版本的 CloudWatch 指標元件預期的組態參數與版本 2.x 不同。如果您對 2.x 版使用非預設組態,並且想要從 v2.x 升級至 v3.x,則必須更新元件的組態。如需詳細資訊,請參閱CloudWatch測量結果元件組態

新功能
  • 添加對運行 Windows 的核心設備的支持。

  • 將元件類型從 Lambda 元件變更為泛型元件。此元件現在不再依賴舊版訂閱路由器元件來建立訂閱。

  • 新增InputTopic組態參數,以指定元件訂閱接收訊息的主題。

  • 添加新的OutputTopic配置參數以指定組件發布狀態響應的主題。

  • 新增PubSubToIoTCore組態參數,以指定是否要發佈和訂閱 AWS IoT Core MQTT 主題。

  • 新增可讓您選擇性地停用安裝元件相依性的安裝指令碼的新UseInstaller組態參數。

錯誤修復和改進

添加對輸入數據中重複時間戳的支持。

v2.x

版本

變更

2.1.3

版本更新 Greengrass 2.11.0 版本釋放。

2.1.2

版本更新了 Greengrass 核 2.7.0 版本釋放。

2.1.1

版本更新 Greengrass 2.6.0 版本發布。

2.1.0

新功能

2.0.8

錯誤修復和改進
  • 添加對輸入數據中重複時間戳的支持。

  • 版本更新了 Greengrass 核 2.5.0 版本。

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

初始版本。

另請參閱