Amazon Data Firehose を使用した AWS CloudWatch メトリクスストリーム

選択した Datadog サイト () では AWS CloudWatch Metric Streams with Amazon Data Firehose は利用できません。

Amazon CloudWatch メトリクスストリームと Amazon Data Firehose を使用すると、CloudWatch メトリクスを 2〜3 分のレイテンシーで Datadog に取り込むことができます。これは、Datadog のデフォルトの API ポーリングアプローチよりも大幅に高速で、デフォルトのアプローチではメトリクスが 10 分ごとに更新されます。API ポーリングアプローチについて、詳しくはクラウドメトリクスの遅延に関するドキュメントでご確認ください。

概要

メトリクスフロー図
  1. メトリクスをストリーミングする各 AWS アカウントとリージョンに CloudWatch メトリクスストリームを作成します。
    • オプションで、ストリーミングするためのネームスペースまたはメトリクスの限定されたセットを指定します。
  2. メトリクスストリームを作成すると、Datadog はストリーミングされたメトリクスの受信をすぐに開始し、追加の構成を必要とせずにそれらを Datadog サイトに表示します。
AWS インテグレーションタイルで構成されたネームスペースフィルタリングは、CloudWatch メトリクスストリームには適用されません。詳細は以下をご覧ください。

メトリクスストリーミングと API ポーリングの比較

CloudWatch Metric Streams と API ポーリングの主な相違点は以下の通りです。

  • AWS でのネームスペースフィルタリング: AWS インテグレーションページのネームスペースごとのデフォルトとアカウントレベルの設定は、API ポーリングアプローチにのみ適用されます。AWS アカウントの CloudWatch メトリクスストリーム設定を使用して、ストリームにネームスペース/メトリクスを含めたり除外したりするためのすべてのルールを管理します。

  • 2 時間以上遅れて報告されるメトリクス: API ポーリングは、CloudWatch Metric Stream を通して送ることができないため、メトリクスストリーミングを有効にした後も aws.s3.bucket_size_bytesaws.billing.estimated_charges などのメトリクスを収集し続けます。

API ポーリングからメトリクスストリームへの切り替え

API ポーリングメソッドを通じて特定の CloudWatch ネームスペースのメトリクスを既に受け取っている場合、Datadog は自動的にこれを検出し、ストリーミングを開始するとそのネームスペースのメトリクスポーリングを停止します。Datadog は引き続き API ポーリングを使用して、ストリームされたメトリクスに対してカスタムタグや他のメタデータを収集するため、AWS インテグレーションページの構成設定は変更しないままにしておきます。

メトリクスストリームから API ポーリングに戻る

AWS アカウントやリージョン、あるいは特定のネームスペースのメトリクスをストリーミングしたくないと後で判断した場合、Datadog は自動的に AWS インテグレーションページの構成設定に基づいて、API ポーリングを使用してそれらのメトリクスの収集を再び開始します。AWS アカウントとリージョンのすべてのメトリクスのストリーミングを停止したい場合は、本ドキュメントのメトリクスストリーミングを無効にするのセクションの指示に従います。

課金

メトリクスをストリーミングするための Datadog からの追加料金はありません。

AWS は、CloudWatch メトリクスストリームのメトリクスアップデートの数および Amazon Data Firehose に送信されたデータ量に基づいて課金します。そのため、ストリーミングしている特定のメトリクスに関して CloudWatch コストが増加する可能性があります。このため、Datadog は、より低いレイテンシーが必要な AWS メトリクス、サービス、リージョン、およびアカウントにメトリクスストリームを使用し、それ以外にはポーリングを使用することを推奨します。詳細については、Amazon CloudWatch の価格設定を参照してください。

ストリーム内の EC2 または Lambda メトリクスは、請求対象のホストと Lambda 呼び出しの数を増やす可能性があります (EC2 の場合、これらのホストと関数が AWS インテグレーションまたは Datadog Agent でまだ監視されていない場合)。

セットアップ

はじめに

  1. Metric Streaming と API ポーリングの比較のセクションをよく読んで、Metric Streaming を有効にする前に違いを理解してください。

  2. まだ接続していない場合は、AWS アカウントを Datadog に接続します。詳細については、CloudFormation のセットアップ手順を参照してください。

インストール

複数の AWS リージョンを使用している場合は自動的かつ簡単になるため、Datadog では CloudFormation の使用をお勧めします。

: Datadog へのメトリクスストリーミングは現在、OpenTelemetry v0.7 出力フォーマットのみをサポートしています。

  1. Datadog サイトで、AWS インテグレーションページConfiguration タブに移動します。

  2. AWS アカウントをクリックして、メトリクスストリーミングを設定します。

  3. Metric Collection の下、CloudWatch Metric Streams の下にある Automatically Using CloudFormation をクリックし、AWS コンソールでスタックを起動させます。

    AWS インテグレーションページの Metric Collection タブの CloudWatch Metric Streams セクションで、Automatically Using CloudFormation ボタンをハイライトした状態
  4. 必要なパラメータを入力します。

    • ApiKey: Datadog API キーを追加します。
    • DdSite: Datadog サイトを選択します。サイトは次のとおりです:
    • Regions: メトリクスストリーミング用に設定するリージョンのコンマ区切りのリスト。サポートされるリージョンの完全なリストについては、AWS のドキュメントメトリクスストリームを使用するを参照してください。
  5. オプションのパラメータを入力します。

    • FilterMethod: メトリクスストリーミングに含めるネームスペースのリストを含めるか除外します。
    • First/Second/Third Namespace: 含めるまたは除外するネームスペースを指定します。注: ネームスペースの値は、AWS のドキュメントのネームスペース列の値と正確に一致する必要があります。例: AWS/EC2。
  6. “I acknowledge that AWS CloudFormation might create IAM resources with custom names.” (AWS CloudFormation がカスタム名で IAM リソースを作成する可能性があることを認めます) という確認ボックスをオンにします。

  7. Create Stack をクリックします。

結果

スタックが正常に作成されたら、Datadog が変更を認識するまで 5 分ほど待ちます。完了を確認するには、Datadog の AWS インテグレーションページMetric Collection タブに移動し、選択したアカウントに対してアクティブ化したリージョンが表示されることを確認します。

AWS インテグレーションページの Metric Collection タブの CloudWatch Metric Streams セクションで、1 つのリージョンがアクティブになっている状態

AWS Console を使用してメトリクスストリームをセットアップするには、各 AWS リージョンに対して CloudWatch メトリクスストリームを作成します。

: Datadog へのメトリクスストリーミングは現在、OpenTelemetry v0.7 出力フォーマットのみをサポートしています。

  1. Quick AWS Partner Setup を選択し、ドロップダウンメニューから AWS パートナーの宛先として Datadog を選択します。

    Cloudwatch メトリクスストリームのクイックパートナセットアップ
  2. メトリクスをストリーミングする Datadog サイトを選択し、Datadog API キーを入力します。

  3. すべての CloudWatch メトリクスをストリーミングするか、特定のネームスペースのみをストリーミングするかを選択します。また、特定のメトリクスを除外するオプションもあります。モニタリングアカウントの場合は、クロスアカウントストリーミングを有効にすることもできます。

    Cloudwatch メトリクスストリーム
  4. Add additional statistics では、Datadog に送信する AWS のパーセンタイルメトリクスを含みます。Datadog がポーリングでサポートするパーセンタイルメトリクスの一覧は、CloudFormation テンプレートを参照してください。

    パーセンタイル
  5. メトリクスストリームに名前を付けます。

  6. Create metric stream をクリックします。

結果

Metric Stream リソースが正常に作成されたことを確認したら、Datadog が変更を認識するまで 5 分ほど待ちます。完了を確認するには、Datadog の AWS インテグレーションページMetric Collection タブを開き、指定した AWS アカウントの CloudWatch Metric Streams で有効化したリージョンが有効になっていることを確認します。

AWS インテグレーションページの Metric Collection タブの CloudWatch Metric Streams セクションで、1 つのリージョンがアクティブになっている状態

: CloudWatch API のポーリングをすでに有効にしている場合、ストリーミングへの移行により、ストリーミングしている特定のメトリクスが Datadog で二重にカウントされる短い期間 (最大 5 分) が発生する可能性があります。これは、Datadog のクローラーが実行されて CloudWatch メトリクスを送信するタイミングと、Datadog がこれらのメトリクスのストリーミングを開始したことを認識してクローラーをオフにするタイミングが異なるためです。

クロスアカウントメトリクスストリーミング

AWS リージョン内の複数の AWS アカウントにまたがる単一のメトリクストリームにメトリクスを含めるには、クロスアカウントメトリクストリーミングを使用します。これにより、共通の宛先にメトリクスを収集するために必要なストリームの数を減らすことができます。これを行うには、モニタリングアカウントにソースアカウントを接続し、AWS モニタリングアカウントで Datadog へのクロスアカウントストリーミングを有効にします。

この機能を正しく動作させるには、モニタリングアカウントに以下の権限が必要です。

  • oam:ListSinks
  • oam:ListAttachedLinks

注: ストリーミングされたメトリクスのカスタムタグやその他のメタデータを収集するには、ソースアカウントを Datadog とインテグレーションしてください。

メトリクスストリーミングを無効にする

特定の AWS アカウントとリージョンに対してメトリクスストリーミングを完全に無効にするには、AWS メトリクスストリームとその関連リソースを削除する必要があります。Datadog のメトリクスの損失を防ぐために、これらの削除手順に注意深く従うことが重要です。

CloudFormation でストリーミングを設定した場合:

  1. セットアップ時に作成されたスタックを削除します。

AWS コンソールからストリーミングを設定した場合:

  1. 配信ストリームにリンクしている CloudWatch Metric Stream を削除します。
  2. ストリームに関連付けられた S3 および Firehose IAM ロールを含め、ストリームのセットアップ中に作成されたすべてのリソースを削除します。

リソースが削除されたら、Datadog が変更を認識するまで 5 分ほど待ちます。完了を確認するには、Datadog の AWS インテグレーションページMetric Collection タブを開き、指定した AWS アカウントの CloudWatch Metric Streams に無効にしたリージョンが表示されていないことを確認します。

トラブルシューティング

Metric Streams や関連リソースのセットアップで遭遇する問題を解決するには、AWS のトラブルシューティングをご覧ください。

その他の参考資料