728x90
problem
현재 서버를 맥os 로 구동하고 있다.
설정은 분명 잘한것 같은데....
맥의 Docker 컨테이너 정보를 읽어오지 못하고 있었다.
solution
결론부터 말하자면 맥os 는 docker container 들의 메트릭 정보를 가져올 수 없다.
Mac Host (datadog-agent 설치됨)
↑ (여기에는 docker.sock 없음)
Docker Desktop 내부 VM (여기에 진짜 Docker daemon 있음)
↑
컨테이너들 (여기서 돌아감)
datadog-agent 를 도커 컨테이너에 띄워서 컨테이너 정보들을 가져오면 된다.
services:
datadog-agent:
image: gcr.io/datadoghq/agent:7
container_name: datadog-agent
environment:
- DD_API_KEY=
- DD_SITE=
- DD_APM_ENABLED=true
- DD_LOGS_ENABLED=true
- DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true
ports:
- "8126:8126"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /proc/:/host/proc/:ro
- /sys/fs/cgroup:/host/sys/fs/cgroup:ro
- /path/app/logs:/app/logs:rw
# redis 설정 disabled 마운트 (선택사항)
- /path/datadog/conf/redisdb.d/conf.yaml:/etc/datadog-agent/conf.d/redisdb.d/auto_conf.yaml:rw
# logs 설정 마운트
- /path/datadog/conf/logs.d/conf.yaml:/etc/datadog-agent/conf.d/logs.d/conf.yaml:rw
networks:
- app-network
networks:
app-network:
external: true
이 후 server 의 docker-compose 설정도 변경 해주어야 한다.
environment:
- TZ=Asia/Seoul
# 도커 컨테이너 이름
- DD_AGENT_HOST=datadog-agent
- DD_TRACE_AGENT_PORT=8126
command: >
java
-Ddd.logs.injection=false
-Ddd.profiling.enabled=true
-javaagent:/app/dd-java-agent.jar
이 후
docker exec -it datadog-agent agent status
=========
APM Agent
=========
Status: Running
Pid: 400
Uptime: 1065 seconds
Mem alloc: 30,611,584 bytes
Hostname: docker-desktop
Receiver: 0.0.0.0:8126
Endpoints:
https://trace.agent.us5.datadoghq.com.
Receiver (previous minute)
==========================
No traces received in the previous minute.
Writer (previous minute)
========================
Traces: 5 payloads, 2660 traces, 0 events, 225,409 bytes
Stats: 2 payloads, 2 stats buckets, 3,347 bytes
컨테이너가 잘 잡히는걸 확인 할 수 있다.
728x90