翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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.2.x
-
3.1.x
-
3.0.x
-
2.1.x
-
2.0.x
コンポーネントの各バージョンに対する変更については、「変更ログ」を参照してください。
タイプ
このコンポーネントはジェネリックコンポーネント (aws.greengrass.generic
) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。
リナックス
Windows
要件
このコンポーネントには次の要件があります。
-
Python
バージョン 3.7 がコアデバイスにインストールされ、PATH 環境変数に追加されています。 -
次の IAM ポリシーの例で示されているように、Greengrass デバイスのロールは
cloudwatch:PutMetricData
アクションを許可する必要があります。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] }
詳細については、「Amazon CloudWatch ユーザーガイド」の「Amazon CloudWatch の許可リファレンス」を参照してください。
エンドポイントおよびポート
このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。
エンドポイント | ポート | 必要 | 説明 |
---|---|---|---|
|
443 | あり |
CloudWatch メトリクスをアップロードします。 |
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
次の表に、このコンポーネントのバージョン 3.2.0 の依存関係を示します。
依存関係 | 互換性のあるバージョン | 依存関係タイプ |
---|---|---|
Greengrass nucleus | >=2.0.0 <3.0.0 | ソフト |
トークン交換サービス | >=0.0.0 | ハード |
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
設定
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
-
PublishInterval
-
(オプション) 特定の名前空間にメトリクスのバッチを発行するまでに待機する最大秒数。メトリクスを受信した時点でメトリクスをパブリッシュするようにコンポーネントを設定するには (バッチ処理なし)、
0
を指定します。コンポーネントは、同じ名前空間内でメトリクスを 20 個受信した後、または指定した間隔後に、CloudWatch にパブリッシュされます。
注記
コンポーネントは、イベントがパブリッシュされる順序を指定しません。
この値の最大値は 900 秒です。
デフォルト: 10 秒
-
MaxMetricsToRetain
-
(オプション) コンポーネントが新しいメトリクスに置き換わる前にメモリに保存される、すべての名前空間全体でのメトリクスの最大数です。
この制限はコアデバイスがインターネットに接続していないときに適用され、コンポーネントは後でパブリッシュするためにメトリクスをバッファします。バッファが満杯になると、コンポーネントは最も古いメトリクスを新しいメトリクスに置き換えます。特定の名前空間内のメトリクスは、同じ名前空間内のメトリクスにのみ置き換えられます。
注記
ホストによるコンポーネント処理が中断された場合、コンポーネントはメトリクスを保存しません。この状況は、例えばデプロイ中やコアデバイスの再起動時に発生する可能性があります。
この値は 2,000 メトリクス以上に指定する必要があります。
デフォルト: 5,000 メトリクス
InputTopic
-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。
PubSubToIoTCore
のtrue
を指定した場合、このトピックで MQTT ワイルドカード (+ および #) を使用できます。デフォルト:
cloudwatch/metric/put
OutputTopic
-
(オプション) コンポーネントがステータスレスポンスをパブリッシュする先となるトピック。
デフォルト:
cloudwatch/metric/put/status
PubSubToIoTCore
-
(オプション) AWS IoT Core MQTT トピックにパブリッシュしてサブスクライブするかどうかを定義する文字列値。サポートされている値は
true
およびfalse
です。デフォルト:
false
LogLevel
-
(オプション) コンポーネントのログレベル。こちらにレベル順に一覧表示されているログレベルから選択します。
-
DEBUG
-
INFO
-
WARNING
-
ERROR
-
CRITICAL
デフォルト:
INFO
-
UseInstaller
-
(オプション) このコンポーネントの SDK 依存関係をインストールするために、このコンポーネントでインストーラスクリプトを使用するかどうかを定義するブール値。
依存関係のインストールにカスタムスクリプトを使用する場合、またはビルド済みの Linux イメージにランタイムの依存関係を含める場合は、この値を
false
に設定します。このコンポーネントを使用するには、依存関係を含む次のライブラリをインストールし、デフォルトの Greengrass システムユーザーを利用できるようにする必要があります。デフォルト:
true
PublishRegion
-
(オプション) CloudWatch メトリクスを発行する AWS リージョン 先の 。この値は、コアデバイスのデフォルトのリージョンを上書きします。このパラメータは、クロスリージョンメトリクスにのみ必要です。
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
}
入力データ
このコンポーネントは、次のトピックに関するメトリクスを受け取り、メトリクスを CloudWatch にパブリッシュします。デフォルトで、このコンポーネントはローカルのパブリッシュ/サブスクライブメッセージにサブスクライブします。カスタムコンポーネントからこのコンポーネントにメッセージをパブリッシュする方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。
コンポーネントバージョン v3.0.0 以降では、オプションで PubSubToIoTCore
設定パラメータを true
に設定することで、MQTT トピックをサブスクライブするようにこのコンポーネントを設定することができます。カスタムコンポーネントで MQTT トピックにメッセージをパブリッシュする方法の詳細については、「AWS IoT Core MQTT メッセージの発行/サブスクライブ」を参照してください。
既定のトピック: cloudwatch/metric/put
メッセージは、次のプロパティを受付けます。入力メッセージは JSON 形式である必要があります。
-
request
-
このメッセージのメトリクス。
リクエストオブジェクトには、CloudWatch にパブリッシュするメトリクスデータが含まれています。メトリクス値は、
PutMetricData
動作の仕様を満たしている必要があります。タイプ: 次の情報が含まれる
object
。-
namespace
-
このリクエスト内のメトリクスデータのユーザー定義による名前空間。CloudWatch はメトリクスデータポイントのコンテナとして名前空間を使用します。
注記
予約済みの文字列
AWS/
で始まる名前空間を指定することはできません。型:
string
有効なパターン:
[^:].*
-
metricData
-
メトリクスのデータ。
タイプ: 次の情報が含まれる
object
。-
metricName
-
メトリクスの名前。
型:
string
-
value
-
メトリクスの値。
注記
CloudWatch は小さすぎる値または大きすぎる値を拒否します。この値は、
8.515920e-109
から1.174271e+108
(ベース 10) または2e-360
から2e360
(ベース 2) の間の値である必要があります。CloudWatch は、NaN
、+Infinity
、および-Infinity
などの特殊な値をサポートしていません。型:
double
-
dimensions
-
(オプション) メトリクスのディメンション。ディメンションは、メトリクスとそのデータに関する追加情報を提供します。1 つのメトリクスでは、最大 10 個のディメンションを定義できます。
このコネクタには
coreName
という名前のディメンションが自動的に含まれ、そのコアデバイスの名前を値に持ちます。タイプ:
array
のオブジェクトであり、各々に次の情報が含まれます。-
name
-
(オプション) ディメンション名。
型:
string
-
value
-
(オプション) ディメンション値。
型:
string
-
-
timestamp
-
(オプション) データが受信された時間。UNIX エポック時間で秒単位で表されます。
デフォルトは、コンポーネントがメッセージを受信した時間です。
型:
double
注記
このコンポーネントのバージョン 2.0.3~2.0.7 を使用する場合は、1 つのソースから複数のメトリクスを送信するときに、メトリクスごとに個別にタイムスタンプを取得することをお勧めします。タイムスタンプを保存するのに変数を使用してしないでください。
-
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 Service Quotas」を参照してください。
例 入力例
{
"request": {
"namespace": "Greengrass",
"metricData": {
"metricName": "latency",
"dimensions": [
{
"name": "hostname",
"value": "test_hostname"
}
],
"timestamp": 1539027324,
"value": 123.0,
"unit": "Seconds"
}
}
}
出力データ
このコンポーネントは、デフォルトで次のローカルパブリッシュ/サブスクライブトピックに出力データとしてレスポンスをパブリッシュします。カスタムコンポーネントでこのトピックに関するメッセージへサブスクライブする方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。
オプションで、PubSubToIoTCore
設定パラメータを true
に設定することで。このコンポーネントが MQTT トピックにパブリッシュするように設定することができます。カスタムコンポーネントで MQTT トピックのメッセージにサブスクライブする方法の詳細については、「AWS 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"
}
}
注記
コンポーネントが、接続エラーなどの再試行可能なエラーを検出した場合、次のバッチでパブリッシュを再試行します。
ライセンス
このコンポーネントには、次のサードパーティーソフトウェア/ライセンス品が含まれています。
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
dateutil
/PSF ライセンス -
docutils
/BSD ライセンス、GNU 一般パブリックライセンス (GPL)、Python Software Foundation ライセンス、パブリックドメイン -
jmespath
/MIT ライセンス -
s3transfer
/Apache License 2.0 -
urllib3
/MIT ライセンス
このコンポーネントは、Greengrass Core ソフトウェアライセンス契約
ローカルログファイル
このコンポーネントは次のログファイルを使用します。
/logs/aws.greengrass.Cloudwatch.log
/greengrass/v2
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。
または/greengrass/v2
C:\greengrass\v2
を AWS IoT Greengrass ルートフォルダへのパスに置き換えます。sudo tail -f
/logs/aws.greengrass.Cloudwatch.log/greengrass/v2
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン |
変更 |
---|---|
3.2.0 |
|
3.1.0 |
|
3.0.0 |
このバージョンの CloudWatch メトリクスコンポーネントでは、バージョン 2.x 以外の設定パラメータが必要です。バージョン 2.x でデフォルト以外の設定を使用し、v2.x から v3.x にアップグレードする場合は、コンポーネントの設定を更新する必要があります。詳細については、「CloudWatch メトリクスのコンポーネント設定」を参照してください。
|
関連情報
-
Amazon CloudWatch ユーザーガイドの Amazon CloudWatch メトリクスの使用
-
Amazon CloudWatch API リファレンスの PutMetricData