StatsD を使用してカスタムメトリクスを取得する - Amazon CloudWatch

StatsD を使用してカスタムメトリクスを取得する

CloudWatch エージェントで StatsD プロトコルを使用することで、アプリケーションやサービスから追加のカスタムメトリクスを取得できます。StatsDは、さまざまなアプリケーションからメトリクスを収集できる一般的なオープンソースソリューションです。StatsD は、独自のメトリクスを計測する場合に特に便利です。CloudWatch エージェントと StatsD を一緒に使用する例については、「Amazon CloudWatch エージェントを使用してカスタムアプリケーションメトリクスをより効率的にモニターリングする方法」を参照してください。

StatsD は、Linux サーバーと、Windows Server を実行するサーバーの両方でサポートされます。CloudWatch では、次の StatsD 形式がサポートされています。

MetricName:value|type|@sample_rate|#tag1: value,tag1...
  • MetricName – コロン、バー、# 文字、または @ 文字を含まない文字列。

  • value – これは整数または浮動小数点のいずれかです。

  • type – カウンターには c、ゲージには g、タイマーには ms、ヒストグラムには h、セットには s を指定します。

  • sample_rate – (オプション) 0 から 1 の間の浮動小数点数 (0 と 1 を含む)。カウンター、ヒストグラム、およびタイマーメトリクスに対してのみ使用します。デフォルト値は 1 (時間の 100% サンプリング) です。

  • tags – (オプション) タグのカンマ区切りリスト。StatsD タグは CloudWatch のディメンションと似ています。キー/値タグにはコロンを使用します、例 env:prod

この形式に従う任意の StatsD クライアントを使用して、CloudWatch エージェントにメトリクスを送信することができます。一部の利用可能な StatsD クライアントの詳細については、「GitHub の StatsD クライアントページ」を参照してください。

これらのカスタムメトリクスを収集するには、"statsd": {} 行をエージェント設定ファイルの metrics_collected セクションに追加します。この行を手動で追加することができます。設定ファイルの作成にウィザードを使用する場合は、自動的に設定されます。詳細については、「CloudWatch エージェント設定ファイルを作成する」を参照してください。

StatsD のデフォルト設定は、ほとんどのユーザーに有効です。また、必要に応じてエージェント設定ファイルの [statsd] セクションに追加できるオプションフィールドがあります。

  • service_address – CloudWatch エージェントがリッスンする必要のあるサービスアドレス。形式は ip:port です。IP アドレスを省略すると、エージェントは使用可能なすべてのインターフェイスをリッスンします。UDP 形式のみがサポートされているため、UDP プレフィックスを指定する必要はありません。

    デフォルト値は :8125 です。

  • metrics_collection_intervalStatsD プラグインが実行され、メトリクスを収集する秒単位の頻度。デフォルト値は 10 秒です。範囲は 1~172,000 です。

  • metrics_aggregation_interval – CloudWatch がメトリクスを 1 つのデータポイントに集約する秒単位の頻度。デフォルト値は 60 秒です。

    例えば、metrics_collection_interval が 10 で metrics_aggregation_interval が 60 の場合、CloudWatch は 10 秒ごとにデータを収集します。1 分ごとに、その 1 分間に読み取った 6 つのデータ読み取り値が 1 つのデータポイントに集約され、それが CloudWatch に送信されます。

    範囲は 0~172,000 です。metrics_aggregation_interval を 0 に設定すると、StatsD メトリクスの集計が無効になります。

  • allowed_pending_messages — キューに入れることができる UDP メッセージの数です。キューがフルになると、StatsD サーバーはパケットのドロップを開始します。デフォルト値は 10000 です。

  • drop_original_metrics - オプション。metrics セクションの aggregation_dimensions フィールドを使用してメトリクスを集計結果にロールアップしている場合、デフォルトでは、エージェントは集計メトリクスと、ディメンションの値ごとに分離された元のメトリクスの両方を送信します。元のメトリクスを CloudWatch に送信したくない場合は、メトリクスのリストを使用してこのパラメータを指定できます。このパラメータとともに指定されたメトリクスには、CloudWatch にレポートされるディメンションごとのメトリクスがありません。代わりに、集計されたメトリクスのみがレポートされます。これにより、エージェントが収集するメトリクスの数が減り、コストが削減されます。

次に示すのは、デフォルトポートとカスタム収集および集約間隔を使用した、エージェント設定ファイルの [statsd] セクションの例です。

{ "metrics":{ "metrics_collected":{ "statsd":{ "service_address":":8125", "metrics_collection_interval":60, "metrics_aggregation_interval":300 } } } }

CloudWatch エージェントによってインポートされた StatsD メトリクスの表示

StatsD メトリクスを CloudWatch にインポートした後、これらのメトリクスを時系列グラフとして表示し、これらのメトリクスをモニターリングし、指定したしきい値に違反した場合に通知できるアラームを作成できます。以下の手順では、StatsD メトリクスを時系列グラフとして表示する方法を示します。アラームの設定の詳細については、「 Amazon CloudWatch でのアラームの使用」を参照してください。

CloudWatch コンソールで StatsD メトリクスを表示する
  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで [Metrics (メトリクス)] を選択します。

  3. エージェントによって収集されたメトリクスの名前空間を選択します。デフォルトでは、これは CWAgent ですが、CloudWatch エージェント設定ファイルで別の名前空間を指定している場合があります。

  4. メトリクスのディメンション (例: インスタンス別メトリクス) を選択します。

  5. [All metrics] タブには、名前空間内のそのディメンションのメトリクスがすべて表示されます。以下の操作を行うことができます。

    1. メトリクスをグラフ表示するには、メトリクスの横にあるチェックボックスを選択します。すべてのメトリクスを選択するには、テーブルの見出し行にあるチェックボックスを選択します。

    2. テーブルを並べ替えるには、列見出しを使用します。

    3. リソースでフィルタするには、リソース ID を選択し、[Add to search] を選択します。

    4. メトリクスでフィルタするには、メトリクスの名前を選択し、[Add to search] を選択します。

  6. (オプション) このグラフを CloudWatch ダッシュボードに追加するには、[Actions] (アクション)、[Add to dashboard] (ダッシュボードに追加) の順に選択します。