Datadog에서 ECS 작업의 지표를 볼 수 있을 때까지

9196 단어 ECSDatadog
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에서 작업 메트릭을 취한 것처럼 보입니다.
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"
}

좋은 웹페이지 즐겨찾기