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

PHP应用集成Datadog APM遇追踪数据发送失败问题求助

解决PHP应用集成Datadog APM的"No such file or directory"错误

问题根源

你的PHP容器中冗余安装了Datadog Agent,同时ddtrace扩展默认尝试通过本地Unix套接字(/var/run/datadog/apm.socket)连接Agent,但在ECS Fargate的awsvpc网络模式下,容器间需通过TCP通信,且独立的Agent容器才是正确的接收端,导致连接失败触发报错。

修复步骤

1. 精简PHP容器Dockerfile,移除冗余Agent安装

仅保留ddtrace扩展的安装和配置,添加Agent容器的连接地址:

# 移除原有的Agent安装命令
# RUN DD_API_KEY=${DD_API_KEY} DD_SITE="datadoghq.eu" DD_HOSTNAME=${DD_HOSTNAME} DD_ENV=${DD_ENV} DD_APM_INSTRUMENTATION_ENABLED=host bash -c "$(curl -L https://s3.amazonaws.com/dd-agent/scripts/install_script_agent7.sh)"

RUN curl -LO https://github.com/DataDog/dd-trace-php/releases/latest/download/datadog-setup.php
RUN php datadog-setup.php --php-bin=all
RUN sed -i \
-e 's/;datadog.service = unnamed-php-service/datadog.service = tms/' \
-e 's/;datadog.agent_host = 127.0.0.1/datadog.agent_host = app-datadog-agent/' \
-e 's/;datadog.agent_port = 8126/datadog.agent_port = 8126/' \
/usr/local/etc/php/conf.d/98-ddtrace.ini

2. 修正Datadog Agent的Terraform配置

确保关键环境变量配置正确:

"environment": [
{
"name": "DD_API_KEY",
"value": "你的实际API密钥"
},
{
"name": "ECS_FARGATE",
"value": "true"
},
{
"name": "DD_SITE",
"value": "datadoghq.eu"
},
{
"name": "DD_APM_ENABLED",
"value": "true"
},
{
"name": "DD_APM_NON_LOCAL_TRAFFIC",
"value": "true"
}
]
  • ECS_FARGATE需设置为true,适配Fargate环境
  • DD_SITE需和PHP容器配置一致,确保数据上传到正确的区域

3. 验证容器间通信

在ECS Fargate的awsvpc模式下,同一任务内的容器可通过容器名称直接通信,app-datadog-agent作为Agent容器名称,PHP容器的ddtrace扩展可通过该名称访问到Agent的8126端口。

额外验证项

  • 确认PHP容器的任务定义网络模式为awsvpc,与Agent容器处于同一任务或VPC内
  • 查看Agent容器日志,确认存在APM receiver listening on 0.0.0.0:8126的启动信息
  • 在PHP容器内执行php -m | grep ddtrace,验证扩展已正确加载

内容的提问来源于stack exchange,提问作者Chella S

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:17:04