🦔

railsとecsでdatadogを設定する方法

2023/08/25に公開

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