PHP 示例¶
安装依赖¶
首先下载 需要的 PHP ddtrace 扩展,下载完成后安装扩展
Using RPM package (RHEL/Centos 6+, Fedora 20+)
Using DEB package (Debian Jessie+ , Ubuntu 14.04+ on supported PHP versions)
Using APK package (Alpine)
通过以上方式将安装默认版本的 PHP 扩展。可以通过配置 DD_TRACE_PHP_BIN 到扩展包路径来安装制定的扩展包。
安装完成后重启 PHP (PHP-FPM or the Apache SAPI) 然后访问启动了 tracing 的 endpoint。
Note: 如果你的 PHP 应用没有使用 Composer 或使用 spl_autoload_register()注册了 autoloader,你需要设置环境变量 DD_TRACE_NO_AUTOLOADER=true, 用来开启自动检测。
配置¶
PHP tracer 可以通过环境变量和 ini 配置文件进行配置。
ini 可以进行全局配置,例如:使用 php.ini 配置特定的 web server 或 virtual host。
Note: 如果你使用了自动检测(建议方案),需要注意的是用于自动检测的代码会在任何业务代码前运行。那么,以下环境变量和 ini 配置需要在相应服务器上进行配置,并且能被 PHP runtime 访问到。例如: putenv()函数和 .env 文件会失效。
Apache
Apache 搭配 php-fpm, 在 www.conf 配置文件中配置环境变量。
; Example of passing the host environment variable SOME_ENV
; to the PHP process as DD_AGENT_HOST
env[DD_AGENT_HOST] = $SOME_ENV
; Example of passing the value 'my-app' to the PHP
; process as DD_SERVICE
env[DD_SERVICE] = my-app
; Or using the equivalent INI setting
php_value datadog.service my-app
还可以在 server config, virtual host, directory, or .htaccess 文件中使用 SetEnv。
# In a virtual host configuration as an environment variable
SetEnv DD_TRACE_DEBUG true
# In a virtual host configuration as an INI setting
php_value datadog.service my-app
NGINX
Nginx 搭配 php-fpm, 在 www.conf 配置文件中配置环境变量。
; Example of passing the host environment variable SOME_ENV
; to the PHP process as DD_AGENT_HOST
env[DD_AGENT_HOST] = $SOME_ENV
; Example of passing the value 'my-app' to the PHP
; process as DD_SERVICE
env[DD_SERVICE] = my-app
; Or using the equivalent INI setting
php_value datadog.service my-app
运行¶
打开 shell 运行下面命令
DD_AGENT_HOST=localhost \
DD_TRACE_AGENT_PORT=9529 \
DD_TRACE_DEBUG=true \
php -d datadog.service=my-php-app -S localhost:8888
环境变量支持¶
- DD_AGENT_HOST INI: datadog.agent_host Datakit 监听的主机地址,默认 localhost。
- DD_TRACE_AGENT_PORT INI: datadog.trace.agent_port Datakit 监听端口号,默认 9529。
- DD_ENV INI: datadog.env 设置程序环境变量。
- DD_SERVICE INI: datadog.service 设置 APP 名字, 版本小于 0.47.0 使用 DD_SERVICE_NAME。
- DD_SERVICE_MAPPING INI: datadog.service_mapping 重命名 APM 服务名。
- DD_TRACE_AGENT_ATTEMPT_RETRY_TIME_MSEC INI: datadog.trace.agent_attempt_retry_time_msec 基于 IPC 可配置的电路断点重试时间间隔 (milliseconds), 默认 5000。
- DD_TRACE_AGENT_CONNECT_TIMEOUT INI: datadog.trace.agent_connect_timeout Agent 连接超时 (milliseconds),默认 100。
- DD_TRACE_AGENT_MAX_CONSECUTIVE_FAILURES INI: datadog.trace.agent_max_consecutive_failures 基于 IPC 可配置的电路最大连续断点次数,默认 3。
- DD_TRACE_AGENT_TIMEOUT INI: datadog.trace.agent_timeout Agent 数据传输超时(milliseconds),默认 500。
- DD_TAGS INI: datadog.tags 设置默认 tags。
- DD_VERSION INI: datadog.version 设置服务版本。
- DD_TRACE_SAMPLE_RATE INI: datadog.trace.smaple_rate 设置采样率从 0.0(0%) ~ 1.0(100%)。