概要

インフラストラクチャーマップ (ホストマップコンテナマップ) は、ホストとコンテナを一画面で視覚化し、メトリクスを色や形で理解できるようにするものです。

コンテナマップ。コンテナを AWS アベイラビリティゾーンごとにグループ化した長方形で表示しています。

左上のドロップダウンセレクタを使用して、ホストとコンテナを切り替えます。

インストール

Agent をデプロイしたら、それ以上の設定は不要です。Docker Agent ではなく標準インストールで Docker コンテナ情報を収集するには、dd-agent ユーザーが docker.sock へのアクセス許可を持つ必要があります。アクセス許可は dd-agentdocker グループに追加することにより付与されます。

使用方法

フィルター

Filter 入力ボックスを使用して、インフラストラクチャーマップをインフラストラクチャーの特定のサブセットに制限します。左上のフィルター入力バーでは、Datadog が提供する属性だけでなく、タグによるインフラストラクチャーマップのフィルタリングも可能です。

フィルター入力バーが空の場合は、選択されたメトリクスを Datadog にレポートしているすべてのホスト/コンテナがマップに表示されます。

たとえば、ホストが置かれている環境に基づいてホストにタグ付けする場合は、‘production’ でフィルタリングすることで、ステージングなどの他の環境内のホストをマップから除外できます。稼働中のホストを 1 つのロール以外すべて除外する場合は、そのロールもフィルターに追加します。フィルターは AND で結合されます。

: tag:value"tag:value" のフィルタリングは異なります。tag:value のフィルタリングは厳密にそのタグとの一致を検索しますが、"tag:value" のフィルタリングはそのテキストを検索します。

グループ

Group 入力ボックスを使用すると、ホスト/コンテナをグループとして空間的に配置できます。グループ内のホスト/コンテナは、グループ化したタグを共有します。

たとえば、ホストを AWS アベイラビリティーゾーンでグループ化することができます。2 つ目のグループ化タグ (たとえば、インスタンスタイプ) を追加すると、ホストはさらにいくつかのグループに再分割されます。つまり、以下に示すように、まずアベイラビリティゾーンで分割され、次にインスタンスタイプで分割されます。

ホスト (六角形で表される) をアベイラビリティゾーンごとに 2 つのグループに分けたホストマップ。各アベイラビリティゾーンの中で、ホストはインスタンスタイプごとに細分化されています。

塗りつぶしとサイズ

デフォルトでは、各ホストの色はそのホスト/コンテナの CPU 使用率を表すように設定されており、緑 (0% 使用) からオレンジ (100% 使用) の範囲で表示されます。Fill セレクターで別のメトリクスを選択できます。

インフラストラクチャーマップは、六角形または長方形のサイズで、追加のオプションのメトリクスを伝えることもできます。このメトリクスは、Size セレクターで選択できます。

: CPU Utilization メトリクスは、Datadog Agent からレポートされているか、AWS または vSphere から直接レポートされているかにかかわらず、最も信頼性が高い最新の CPU 使用率の計測値を使用します。

タグ

タグは手動で適用することも、インテグレーションを使って自動的に適用することも可能です。そして、これらのタグを使ってホストやコンテナをフィルターすることができます。

たとえば、一部のホストが AWS 上で動作している場合、以下の AWS 固有のタグを利用できます。

  • availability-zone
  • region
  • image
  • instance-type
  • security-group
  • 使用している EC2 タグ (name など)

Datadog Agent では、ホストメタデータおよびアプリケーション情報も収集されます。この一部は、フィルターまたはグループ化のための語句として使用できます。そのようなフィールドには以下が含まれます。

  • field:metadata_agent_version
  • field:metadata_platform
  • field:metadata_processor
  • field:metadata_machine
  • field:apps

ズームイン

調査したいホストまたはコンテナを特定したら、クリックすると詳細が表示されます。ホストにズームインし、そのホストからのメトリクスをレポートするインテグレーションが最大 6 つ表示されます。インテグレーションが 6 つより多い場合は、下のスクリーンショットに表示されているように、ホストの詳細ペインの Apps ヘッダーの下にリストされます。

インテグレーションの名前をクリックすると、そのインテグレーションのメトリクスがコンパクトなダッシュボードに表示されます。下のスクリーンショットでは「system」がクリックされ、CPU 使用率、メモリ使用量、ディスクのレイテンシーなどのシステムメトリクスが取得されています。

ユーザーが特定のホストをクリックしたときに表示されるビュー。下部に情報パネルが表示され、各種アプリのほか、メトリクスやステータスを確認するためのセクションが表示されます。

Agent がインストールされていないホストのホストマップ表示

デフォルトでは、選択されたメトリクスをレポートしているホストだけがホストマップに表示されます。これを使用して、グリッド内の個別の六角形の色またはサイズを設定できます。

データの鮮度と意味

ホストマップのデータは、マップを継続的に操作していない限り、約 1 分に 1 回の割合でリフレッシュされます。画面の左下に、データが最後に更新された日時が表示されます。

ユースケース

リソースの最適化

通常、AWS ユーザーはさまざまなインスタンスタイプを使用しています。メモリが最適化されたインスタンスもあれば、計算用に最適化されたインスタンスもあります。小さなインスタンスもあれば、大きなインスタンスもあります。

AWS の費用を削減したいのであれば、高価なインスタンスが何に使用されているのかを明らかにすることから始めます。まず instance-type でグループ化し、次に rolename でグループ化します。c3.8xlarge などの高価なインスタンスタイプに注目します。CPU が十分に活用されていないホスト役割はありませんか。もしあれば、各ホストにズームインして、この数か月間にそのコンピューティング能力が必要であったかどうか、そのホストグループを安価なインスタンスタイプに移行すべきかどうかを確認します。

以下は、Datadog のインフラストラクチャーの一部です。c3.2xlarge インスタンスに大きな負荷がかかっていることがわかります。

インスタンスタイプ別に m3.large、c3.2xlarge、m1.xlarge に分類された、六角形で表された多数のホストを表示したもの。m3.large と m1.xlarge のほとんどのホストは CPU 使用率が低いことを示す緑色で表示されていますが、c3.2xlarge のホストは CPU 使用率が高いことを示すオレンジ色で表示されています。

この c3.2xlarge グループをクリックしてロールでサブグループ化すると (以下)、一部のロールにのみ負荷がかかり、他のロールはほぼアイドル状態であることがわかります。この 7 つの緑色のノードを c3.xlarge にダウングレードすれば、年間 $13,000 ドル近くの節約になります。(ホスト 1 台につき 1 時間で $0.21 の節約 x 24 時間/日 * 365 日/年 * 7 ホスト = $12,877.20 / 年)

前に示した c3.2xlarge のグループを、ロール別にサブグループ化したもの。オレンジ色で統一されているグループもありますが、緑色で統一されているグループもあります。

アベイラビリティーゾーンの配置

ホストマップを使用すると、各アベイラビリティゾーン (AZ) 内のマシンの分布を表示できます。目的のホストをフィルタリングし、AZ ごとにグループ化すると、リソースの再バランスが必要かどうかがすぐにわかります。

以下の例では、role:daniels を持つホストがいくつかのアベイラビリティーゾーンに不均等に分布しています。(Daniels は内部アプリケーションの名前です。)

ホストマップを role:daniels でフィルターし、アベイラビリティゾーンでグループ化したもの。3 つのグループのホストが表示されています。

問題の調査

稼働中に何らかの問題が発生したとします。一部のホストで CPU がペギングされ、応答時間が長くなることもあります。ホストマップは、負荷がかかっているホストとかかっていないホストの違いを迅速に把握するのに役立ちます。調査したいディメンションに基づいてすばやくグループ化を行い、問題のあるサーバーがどのグループに属しているかを視覚的に判断できます。 たとえば、AZ、リージョン、インスタンスタイプ、イメージ、またはシステムで使用しているタグでグループ化を行うことができます。

以下のスクリーンショットでは、一部のホストでは、同じクラスターに属しているにもかかわらず、他のホストより使用可能なメモリが少なくなっています。マシンイメージごとにグループ化することで、使用されているイメージが 2 種類あり、その 1 つが過負荷であることがわかりました。

Datadog ホストマップ - 2 メモリの使用帯域
Datadog ホストマップ - 2 つのイメージグループ

その他の参考資料

PREVIEWING: may/unit-testing