The Ruby Datadog Trace library is open source - view the GitHub repository for more information.

Supported Ruby interpreters:

TypeDocumentationVersionSupport typeGem version support
2.0EOL since June 7th, 2021< 0.50.0
1.9.3EOL since August 6th, 2020< 0.27.0
1.9.1EOL since August 6th, 2020< 0.27.0

Supported web servers:

TypeDocumentationVersionSupport type
Puma / 3.6+Full
Unicorn / 5.1+Full

Supported tracing frameworks:

TypeDocumentationVersionGem version support
OpenTracing (w/ Ruby 2.1+)>= 0.16.0

Full support indicates all tracer features are available.

Deprecated indicates support will transition to Maintenance in a future release.

Maintenance indicates only critical bugfixes are backported until EOL.

EOL indicates support is no longer provided.

Integration instrumentation

Many popular libraries and frameworks are supported out-of-the-box, which can be auto-instrumented. Although they are not activated automatically, they can be activated and configured by using the Datadog.configure API:

Datadog.configure do |c|
  # Activates and configures an integration
  c.tracing.instrument :integration_name, options

options is a Hash of integration-specific configuration settings.

For a list of available integrations, and their configuration options, refer to the following:

NameKeyVersions Supported: MRIVersions Supported: JRubyHow to configureGem source
Action Cableaction_cable>= 5.0>= 5.0LinkLink
Action Maileraction_mailer>= 5.0>= 5.0LinkLink
Action Packaction_pack>= 3.2>= 3.2LinkLink
Action Viewaction_view>= 3.2>= 3.2LinkLink
Active Jobactive_job>= 4.2>= 4.2LinkLink
Active Model Serializersactive_model_serializers>= 0.9>= 0.9LinkLink
Active Recordactive_record>= 3.2>= 3.2LinkLink
Active Supportactive_support>= 3.2>= 3.2LinkLink
AWSaws>= 2.0>= 2.0LinkLink
Concurrent Rubyconcurrent_ruby>= 0.9>= 0.9LinkLink
Dallidalli>= 2.0>= 2.0LinkLink
DelayedJobdelayed_job>= 4.1>= 4.1LinkLink
Elasticsearchelasticsearch>= 1.0>= 1.0LinkLink
Ethonethon>= 0.11>= 0.11LinkLink
Exconexcon>= 0.50>= 0.50LinkLink
Faradayfaraday>= 0.14>= 0.14LinkLink
Grapegrape>= 1.0>= 1.0LinkLink
GraphQLgraphql>= 1.7.9>= 1.7.9LinkLink
gRPCgrpc>= 1.7gem not availableLinkLink
http.rbhttprb>= 2.0>= 2.0LinkLink
httpclienthttpclient>= 2.2>= 2.2LinkLink
httpxhttpx>= 0.11>= 0.11LinkLink
Kafkaruby-kafka>= 0.7.10>= 0.7.10LinkLink
Makara (via Active Record)makara>= 0.3.5>= 0.3.5LinkLink
MongoDBmongo>= 2.1>= 2.1LinkLink
MySQL2mysql2>= 0.3.21gem not availableLinkLink
Net/HTTPhttp(Any supported Ruby)(Any supported Ruby)LinkLink
Prestopresto>= 0.5.14>= 0.5.14LinkLink
Qlessqless>= 0.10.0>= 0.10.0LinkLink
Queque>= 1.0.0.beta2>= 1.0.0.beta2LinkLink
Racecarracecar>= 0.3.5>= 0.3.5LinkLink
Rackrack>= 1.1>= 1.1LinkLink
Railsrails>= 3.2>= 3.2LinkLink
Rakerake>= 12.0>= 12.0LinkLink
Redisredis>= 3.2>= 3.2LinkLink
Resqueresque>= 1.0>= 1.0LinkLink
Rest Clientrest-client>= 1.8>= 1.8LinkLink
Sequelsequel>= 3.41>= 3.41LinkLink
Shoryukenshoryuken>= 3.2>= 3.2LinkLink
Sidekiqsidekiq>= 3.5.4>= 3.5.4LinkLink
Sinatrasinatra>= 1.4>= 1.4LinkLink
Sneakerssneakers>= 2.12.0>= 2.12.0LinkLink
Sucker Punchsucker_punch>= 2.0>= 2.0LinkLink

Further Reading

Additional helpful documentation, links, and articles: