You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform部署Datadog APM页面失败求助:已开启DD_APM_ENABLED仍无效

Datadog APM页面无数据的配置补充方案

已通过Terraform在AWS ECS部署Datadog Agent,日志功能正常,但APM页面无法生成数据。现有任务定义已配置DD_APM_ENABLED=true等变量,需补充以下配置:

1. 暴露APM端口(8126)

在ECS任务定义的容器配置中添加端口映射,确保业务应用能访问Agent的APM端口,同时补充追踪数据接收的关键配置:

resource "aws_ecs_task_definition" "datadog" {
  family = "datadog-${var.env}"
  container_definitions = jsonencode([
    {
      "name" : "datadog-agent",
      "image" : "public.ecr.aws/datadog/agent:latest",
      "cpu" : 100,
      "memory" : 512,
      "essential" : true,
      # 新增端口映射,允许外部访问APM端口
      "portMappings": [
        {
          "containerPort": 8126,
          "hostPort": 8126,
          "protocol": "tcp"
        }
      ],
      "mountPoints" : [
        {
          "containerPath" : "/var/run/docker.sock",
          "sourceVolume" : "docker_sock",
          "readOnly" : null
        },
        {
          "containerPath" : "/host/sys/fs/cgroup",
          "sourceVolume" : "cgroup",
          "readOnly" : null
        },
        {
          "containerPath" : "/host/proc",
          "sourceVolume" : "proc",
          "readOnly" : null
        }
      ],
      "environment" : [
        {
          "name" : "DD_API_KEY",
          "value" : local.op_secrets["dd_api_key"]
        },
        {
          "name" : "DD_SITE",
          "value" : "datadoghq.com"
        },
        {
          "name" : "DD_LOGS_ENABLED",
          "value" : "true"
        },
        {
          "name" : "DD_LOGS_CONFIG_CONTAINER_COLLECT_ALL",
          "value" : "true"
        },
        {
          "name" : "DD_PROCESS_AGENT_ENABLED",
          "value" : "true"
        },
        {
          "name" : "DD_ECS_COLLECT_RESOURCE_TAGS_EC2",
          "value" : "true"
        },
        {
          "name" : "DD_APM_ENABLED",
          "value" : "true"
        },
        {
          "name" : "DD_APM_NON_LOCAL_TRAFFIC",
          "value" : "true"
        },
        {
          "name" : "DD_LOGS_INJECTION",
          "value" : "true"
        },
        {
          "name" : "DD_TRACE_AGENT_PORT",
          "value" : "8126"
        },
        # 新增:确保Agent接收追踪Span数据
        {
          "name" : "DD_APM_RECEIVE_TRACE_SPAN",
          "value" : "true"
        }
      ],
      "family" : "datadog-agent-task"
    }
  ])
  volume {
    name      = "docker_sock"
    host_path = "/var/run/docker.sock"
  }
  volume {
    name      = "proc"
    host_path = "/proc/"
  }
  volume {
    name      = "cgroup"
    host_path = "/sys/fs/cgroup/"
  }
}

2. 业务应用容器的必要配置

  • 为业务应用添加追踪相关环境变量:
    • DD_AGENT_HOST:指向Datadog Agent的访问地址(同ECS任务内可设为localhost,不同任务需设Agent所在服务的DNS或主机IP)
    • DD_TRACE_ENABLED=true
  • 集成对应语言的Datadog追踪库(如Java应用需挂载dd-java-agent.jar并添加启动参数,Python应用需安装ddtrace库)

3. 网络模式检查

  • 若使用awsvpc网络模式:确保应用容器与Agent容器在同一网络命名空间,或通过ECS服务发现实现互通
  • 若使用bridge模式:确认端口映射规则生效,应用容器能访问Agent的8126端口

4. 验证Agent状态

  • 通过ECS控制台查看Agent容器日志,搜索trace-agent关键字,确认是否有接收追踪数据的日志
  • 进入Agent容器执行命令:agent status,查看APM模块的运行状态与数据接收情况

内容的提问来源于stack exchange,提问作者Mahmud Rahimberganov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 12:04:53