LoginSignup
0
0

More than 3 years have passed since last update.

Datadog で ECS タスクのメトリクスを見れるようになるまで

Last updated at Posted at 2019-11-12

Datadog で ECS のメトリクスを見れるようになるまでちょっとハマったのでメモ。

やろうとしたこと

Datadog の公式ドキュメント を参考に、 Datadog コンテナを ECS タスクで動かして、 Datadog 上で ECS クラスタのコンテナの状況を見れるようにしようとしました。

構成

下記構成でハマりました。
ECS + EC2
amzn-ami-2018.03.x-amazon-ecs-optimized (ami-0a7edd69bbca1d1f0)
ECS エージェントバージョン 1.31.0

ハマったところ

タスク定義が見れない

上記ドキュメント内に Datadog のコンテナを動かすための ECS タスク定義のJSONのリンクがあったのですが、リンクが間違っているのか見ることができないです(2019/11/12 現在)

ブログのリンクをお借りする

とりあえず、こちらのブログに貼ってあったリンクを使いました(URL を見た限りだと最新の JSON っぽいけどどうなんだろう・・・)。

メトリクスが取れない

上記 JSON を使って無事 Datadog コンテナが起動できた!
・・・しかし動いているタスクの一覧は表示されるけど、 CPU やメモリなどのメトリクスが取れていない。

ログを見てみる

Datadog タスクのログを取ってみたところ、下記のログが出力されていました。

2019-11-12 07:48:05 UTC | PROCESS | WARN | (pkg/util/containers/metrics/cgroup_detect.go:126 in parseCgroupMountPoints) | No mountPoints were detected, current cgroup root is: /host/sys/fs/cgroup/

cgroup のパスがおかしい?

調べてみたら、 Datadog はタスクのメトリクスを cgroup から取ってるらしく、 cgroup がうまくマウントされていない?
github でもこんな Issue が。パスが間違っている?

EC2 を確認

ECS のクラスタとして動かしている EC2 にログインして タスク定義 JSON に記載されている cgroup のパスを確認してみました。

 # cd /sys/fs/cgroup/
 # ls -a
.  ..

空っぽ・・・。
上記 github の Issue のパスを見てみると

 # cd /cgroup/
 # ls -a
.   blkio  cpuacct  devices  hugetlb  perf_event
..  cpu    cpuset   freezer  memory

こちらが正しいパスのようです。

タスク定義を直す

このパスを直して以下のような JSON にすると Datadog 上での正しくコンテナの様子を見れるようになりました。

{
  "containerDefinitions": [
    {
      "name": "datadog-agent",
      "image": "datadog/agent:latest",
      "cpu": 10,
      "memory": 256,
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/var/run/docker.sock",
          "sourceVolume": "docker_sock",
          "readOnly": true
        },
        {
          "containerPath": "/host/sys/fs/cgroup",
          "sourceVolume": "cgroup",
          "readOnly": true
        },
        {
          "containerPath": "/host/proc",
          "sourceVolume": "proc",
          "readOnly": true
        }
      ],
      "environment": [
        {
          "name": "DD_API_KEY",
          "value": "<YOUR_DATADOG_API_KEY>"
        },
        {
          "name": "DD_SITE",
          "value": "datadoghq.com"
        }
      ]
    }
  ],
  "volumes": [
    {
      "host": {
        "sourcePath": "/var/run/docker.sock"
      },
      "name": "docker_sock"
    },
    {
      "host": {
        "sourcePath": "/proc/"
      },
      "name": "proc"
    },
    {
      "host": {
        "sourcePath": "/cgroup/"
      },
      "name": "cgroup"
    }
  ],
  "family": "datadog-agent-task"
}

スクリーンショット 2019-11-12 17.42.02.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0