datadog

Datadog APM인스톨 (ruby on rails)

iolle 2020. 4. 24. 17:23

ruby dd-trace 인스톨

  1. datadog agent 인스톨

  2. datadog.yaml파일 수정

  3. datadog-agent restart

  4. ddtrace gem file 인스톨

  5. intializers file 만들기

  6. unicorn restart

 

※amazonlinux1에서 인스톨했습니다.

※현재 대응하고 있는 ruby와 unicorn 버전은 다음에서 확인할 수 있습니다.

https://docs.datadoghq.com/ja/tracing/setup/ruby/#compatibility

 

Tracing Ruby Applications

Datadogが大規模なクラウドのモニタリングサービスをリードします。

docs.datadoghq.com


datadog agent 인스톨

# root 유저 
$ sudo su 

# datadog agent install
$ DD_API_KEY={datadog api key} bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)" 

#인스톨 확인
$ ps aux | grep agent | grep datadog 

datadog.yaml파일 수정

다음 내용 추가

$ sudo view /etc/datadog-agent/datadog.yaml 
#############################
api_key: XXXXXXXXXXXXXXXXXXXXXXX # datadog agent api key
collect_ec2_tags: true           # ec2 tag 수집
process_config:                  # 호스트의 CPU, 메모리, I/O, thread수 등 프로세스의 metric 수집
 enabled: true 
apm_config:                      # apm관련 설정
 enabled: true                   # apm 수집 on
#############################

다른 플랫폼으로부터 trace data를 수신하는 경우에는

apm_non_local_traffic: true

을 추가합니다.


datadog-agent restart

datadog agent를 restart시킵니다.

 

$ sudo stop datadog-agent
$ sudo start datadog-agent 
$ ps -ef | grep datadog-agent

ddtrace gem file 인스톨

Gemfile에 ddtrace 추가

view {repository deploy path}/Gemfile 
################################################## 
gem 'ddtrace' 
##################################################

bundle install
※Gemfile.lock가 변경되지 않아 다음과 같이 option( --no-deployment)으로 실행

bundle install --no-deployment

initializer file作成

{repository deploy path}/config/initalizers/에 datadog-tracer.rb 파일 작성

vi {repository deploy path}/config/initializers/datadog-tracer.rb 
################################################### 
require 'ddtrace' 
Datadog.configure do |c| 
 c.use :rails, service_name: 'my app service name' 
end 
###################################################

tag env나 tag role로 설정해둔 환경변수로 service_name를 변경할 경우에는 다음과 같이 함

만약 capistrano로 deploy할 경우에는 환경변수는 /etc/enviroment에 환경변수로 설정해야지 deploy할 때에 변수를 넘길 수 있음.

export DD_SERVICE_NAME={Tag env}-{Tag role}

환경변수 값을 datadog-tracer.rb 파일에서 사용할려고 할때에는 다음과 같이 바꾸어 준다.

vi {repository deploy path}/config/initializers/datadog-tracer.rb 
################################################### 
require 'ddtrace' 
Datadog.configure do |c| 
 c.use :rails, service_name: "#{ENV['DD_SERVICE_NAME']}" 
end 
###################################################

unicorn restart

반응형