docker-compose 환경의 laravel에서 datag로 커스텀 메트릭과 이벤트를 보내는 방법
Datadog의 공식 문서는 여전히 사용물이 되지 않으므로, 스스로 어떻게든 설정 구축했습니다.
docker-compose 설정
첫째, docker-compose 설정입니다.
(참고) docker-compose를 사용한 datag-agent의 설치, 설정 방법은 이쪽
htps : // 이 m / Repa_Shar-kun / ms / cd4dbf, 60bcf, fd74
Laravel 컨테이너 설정
environment,links 설정이 포인트입니다.
링크에서 Laravel 컨테이너와 datagg-agent 컨테이너가 통신 할 수있게 해줍니다.
환경 변수 DD_AGENT_HOST, DD_DOGSTATSD_PORT에서 연결 대상을 설정합니다.
(후술하는 datagstatsd가이 환경 변수를 읽어 사용합니다)
DD_ENTITY_ID는 원하는대로 설정하세요.
app:
build:
context: ./docker/php
dockerfile: Dockerfile
volumes:
- php-fpm-socket:/var/run/php-fpm
- ../backend:/work/backend:delegated
- ./docker/php/bash/.bash_history:/root/.bash_history
- ./docker/php/bash/psysh:/root/.config/psysh
environment:
- DD_AGENT_HOST=dd-agent
- DD_DOGSTATSD_PORT=8125
- DD_ENTITY_ID=Laravel
links:
- dd-agent:dd-agent
datadog-agent 컨테이너 설정
여기서 중요한 것은,
DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true입니다.
또한,
DD_DOGSTATSD_NON_LOCAL_TRAFFIC="true"로 하면 움직이지 않으므로 주의!
dogstatsd는 UDP 포트 8215에서 수신 대기하므로
"8125:8125/udp"를 추가합니다.
그 외의 설정은 nginx를 감시하는 설정등입니다.
dd-agent:
container_name: dd-agent
image: datadog/agent:7
environment:
- DD_API_KEY=ここに自分のAPIキーを書く
- DD_APM_ENABLED=true
- DD_LOGS_ENABLED=true
- DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL=true
- DD_AC_EXCLUDE="name:dd-agent"
- DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /proc/:/host/proc/:ro
- /sys/fs/cgroup:/host/sys/fs/cgroup:ro
ports:
- "8125:8125/udp"
- "8126:8126/tcp"
위와 같이 docker-compose를 설정하면 OK입니다.
컨테이너를 다시 시작합시다.
laravel에 패키지 추가
다음 두 가지 패키지를 추가합니다.
"datadog/php-datadogstatsd"
"chaseconey/laravel-datadog-helper"
composer require datadog/php-datadogstatsd
composer require chaseconey/laravel-datadog-helper
동작 확인
docker ps에서 컨테이너가 올바르게 시작되었는지 확인합니다.
dd-agent가 0.0.0.0:8125->8125/udp에서 수신 대기 중입니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0fa807546066 docker-laravel_app "docker-php-entrypoi…" 35 minutes ago Up 35 minutes 9000/tcp docker-laravel_app_1
8b970a3b89c3 datadog/agent:7 "/init" 35 minutes ago Up 35 minutes (healthy) 0.0.0.0:8125->8125/udp, 0.0.0.0:8126->8126/tcp dd-agent
cli에서 메트릭을 보내보세요.
Docker를 실행하는 호스트에서 보냅니다.
성공하거나 실패하더라도 아무 것도 표시되지 않습니다
echo "deploys.test.myservice:1|c" | nc -w 1 -u 127.0.0.1 8125
Tinker에서 메트릭 이벤트 보내기
여기도 성공하거나 실패하면 null 만 표시됩니다.
첫회만, notice가 가득 나오지만 문제 없습니다.
Psy Shell v0.10.4 (PHP 7.4.11 — cli) by Justin Hileman
>>> Datadog::event('An test error occurred.',array( 'text' => 'Test Info message','alert_type' => 'error'));
=> null
>>> Datadog::increment('my.sweet.metrics');
=> null
>>>
잘 보낼 수 있다면 다음과 같이 datag에 표시됩니다.
그 밖에도 여러가지 로그를 송신할 수 있습니다만, 일단 여기까지 만들면 후에는 문서를 읽으면 어떻게 된다고 생각합니다.
참고 URL(엄청 불친절 극히 극히 없는 공식 문서)
Reference
이 문제에 관하여(docker-compose 환경의 laravel에서 datag로 커스텀 메트릭과 이벤트를 보내는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/reopa_sharkun/items/856265d844c6ddb37a57텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)