Amazon CloudWatch からのメトリクスの取得 - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

Amazon CloudWatch からのメトリクスの取得

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • 公開された CloudWatch メトリクスのリストを取得する方法。

  • データポイントを CloudWatch メトリクスに公開する方法。

シナリオ

メトリクスとは、システムのパフォーマンスに関するデータです。Amazon EC2 インスタンスや、独自のアプリケーションメトリクスなどの一部のリソースの詳細モニタリングを有効にできます。

この例では、CloudWatch からメトリクスを取得して Amazon CloudWatch Events にイベントを送信するために一連の Node.js モジュールが使用されています。Node.js モジュールは、SDK for JavaScript を使用し、CloudWatch クライアントクラスの以下のメソッドを使用して CloudWatch からメトリクスを取得します。

CloudWatch メトリクスの詳細については、Amazon CloudWatch ユーザーガイドAmazon CloudWatch メトリクスの使用を参照してください。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。

メトリクスの一覧表示

cw_listmetrics.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。CloudWatch にアクセスするには、AWS.CloudWatch サービスオブジェクトを作成します。AWS/Logs 名前空間内のメトリクスを一覧表示するために必要なパラメータを含む JSON オブジェクトを作成します。listMetrics メソッドを呼び出して、IncomingLogEvents メトリクスを一覧表示します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); var params = { Dimensions: [ { Name: "LogGroupName" /* required */, }, ], MetricName: "IncomingLogEvents", Namespace: "AWS/Logs", }; cw.listMetrics(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Metrics", JSON.stringify(data.Metrics)); } });

この例を実行するには、コマンドラインに次のように入力します。

node cw_listmetrics.js

このサンプルコードは、このGitHubにあります。

カスタムメトリクスの送信

cw_putmetricdata.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。CloudWatch にアクセスするには、AWS.CloudWatch サービスオブジェクトを作成します。PAGES_VISITED カスタムメトリクスのデータポイントを送信するのに必要なパラメータを含む JSON オブジェクトを作成します。putMetricData メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create CloudWatch service object var cw = new AWS.CloudWatch({ apiVersion: "2010-08-01" }); // Create parameters JSON for putMetricData var params = { MetricData: [ { MetricName: "PAGES_VISITED", Dimensions: [ { Name: "UNIQUE_PAGES", Value: "URLS", }, ], Unit: "None", Value: 1.0, }, ], Namespace: "SITE/TRAFFIC", }; cw.putMetricData(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", JSON.stringify(data)); } });

この例を実行するには、コマンドラインに次のように入力します。

node cw_putmetricdata.js

このサンプルコードは、このGitHubにあります。