🦔
railsとecsでdatadogを設定する方法
rails側の設定
Gemを追加
gem 'ddtrace'
config/initializers/datadog.rbに下記を設定
require 'ddtrace'
service_name = 'test'
Datadog.configure do |c|
# Agentへのデータ送信を有効化する場合、環境変数で明示的に指定する。
c.tracing.enabled = false unless ENV.key?('DD_TRACE_ENABLED')
c.tracing.instrument :rails, service_name: service_name
end
AWS側の設定
タスク定義にrailsのコンテナに加えdatadogコンテナを追加
.
.
.ここはrailsのコンテナの定義
{
"name": "datadog",
"image": "datadog/agent:latest",
"cpu": 0,
"portMappings": [],
"essential": true,
"environment": [
{
"name": "ECS_FARGATE",
"value": "true"
},
{
"name": "DD_APM_ENABLED",
"value": "true"
},
{
"name": "DD_APM_NON_LOCAL_TRAFFIC",
"value": "true"
},
{
"name": "DD_API_KEY",
"value": "apiキー"
},
{
"name": "DD_DOGSTATSD_NON_LOCAL_TRAFFIC",
"value": "true"
},
{
"name": "DD_PROCESS_AGENT_ENABLED",
"value": "true"
}
],
"environmentFiles": [],
"mountPoints": [],
"volumesFrom": [],
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-create-group": "true",
"awslogs-group": "/ecs/rails-app",
"awslogs-region": "ap-northeast-1",
"awslogs-stream-prefix": "ecs"
},
"secretOptions": []
}
}
railsのコンテナのタスク定義にDD_TRACE_ENABLEDの環境変数trueでセットする
Discussion