跳转至

DDTrace Ruby

安装依赖

Ruby 的新一代 SDK 使用 datadog gem;遗留应用可能仍使用 ddtrace gem。两者的加载方式与配置优先级可能不同,因此请先确认当前 Gemfile 和 SDK 版本。完整兼容性和接入说明见 Datadog Ruby 接入文档

Gemfile 中加入自动插桩入口后执行 bundle install

gem "datadog", require: "datadog/auto_instrument"

对仍在使用 1.x 的应用,保留原有依赖并按该版本的官方文档加载:

gem "ddtrace", require: "ddtrace/auto_instrument"

配置

Ruby 应用通常通过进程启动环境变量或 Datadog.configure 代码块配置。环境变量适合容器和平台部署;代码配置适合需要按运行环境集中管理的应用。不要在两处设置互相冲突的地址或服务标识。完整配置项见 Datadog Ruby 配置文档

使用 DataKit 作为 trace 接收端时,显式覆盖上游默认的 127.0.0.1:8126,改为 DataKit 的地址和 9529 端口。例如:

Datadog.configure do |c|
  c.agent.host = '127.0.0.1'
  c.agent.port = 9529
  c.service = 'my-ruby-service'
  c.env = 'production'
end

也可在进程启动前设置 DD_AGENT_HOSTDD_TRACE_AGENT_PORTDD_SERVICEDD_ENVDD_VERSION。若设置了 DD_TRACE_AGENT_URL,它通常优先于 host/port;请只保留一种目标配置。

如不需要 SDK 遥测数据,可在已验证所用 SDK 支持该选项后关闭它,以减少额外诊断信息上报:

export DD_INSTRUMENTATION_TELEMETRY_ENABLED=false

启动应用后访问一个已插桩的路由,并在 DataKit monitor 中确认 trace 请求。排障期间可临时开启 SDK 调试日志;不要长期在生产环境开启详细调试。

环境变量支持

下面列出常用 Ruby APM 参数。它们应在 Ruby 进程启动前设置;完整参数与优先级见 Datadog Ruby 配置文档

  • DD_AGENT_HOST

    默认值127.0.0.1

    Trace 接收端主机地址。接入 DataKit 时填写 DataKit 主机或 Kubernetes Service。

  • DD_TRACE_AGENT_PORT

    上游默认值8126

    Trace 数据发送端口。接入 DataKit 时必须显式设置为 9529

  • DD_ENV

    默认值nil

    设置应用运行环境,比如 productionstaging

  • DD_SERVICE

    默认值:由 SDK 和应用启动方式决定

    设置应用服务名。生产环境请显式设置,避免服务名随入口文件或框架变化。

  • DD_TAGS

    默认值nil

    为所有 trace 设置自定义标签,例如 team:core,layer:api。不要传递令牌、个人信息或高基数请求标识。

  • DD_VERSION

    默认值nil

    设置应用版本号。

  • DD_TRACE_ENABLED

    默认值true

    启用或禁用 trace 发送。关闭后的具体插桩行为取决于 SDK 版本;排障时确认其不是 false

  • DD_LOGS_INJECTION

    默认值true

    向支持的日志输出注入 trace 关联信息。需同时让日志采集链路保留相应字段,才能在日志与 trace 之间关联。

  • DD_TRACE_SAMPLE_RATE

    默认值nil

    设置 trace 采样率,范围为 0.0(0%)到 1.0(100%)。

  • DD_TRACE_RATE_LIMIT

    默认值100

    设置每秒最多采样多少条 trace;它只在 SDK 侧采样规则或采样率生效时起作用。

  • DD_INSTRUMENTATION_TELEMETRY_ENABLED

    默认值true

    启用或禁用 tracer 发送的遥测数据。

文档评价

文档内容是否对您有帮助?