Skip to content

GraphQL unified tracer not autoloaded #3804

Description

@WoutDev

Current behaviour
Following the documentation, I'm getting a NameError when attempting to use the new GraphQL unified tracer:

NameError:
  uninitialized constant Datadog::Tracing::Contrib::GraphQL::UnifiedTrace

This is solved by requiring the file manually:

require 'datadog/tracing/contrib/graphql/unified_trace'

So not sure if this is a documentation issue, or it should be autoloaded while it is not.

Expected behaviour
Looking at the documentation, it looks like a drop-in replacement for GraphQL::Tracing::DataDogTrace and 'just work' instead of raising a NameError.

Steps to reproduce
Use a custom tracer based on UnifiedTrace:

# frozen_string_literal: true

module Util
  module DatadogTracer
    include Datadog::Tracing::Contrib::GraphQL::UnifiedTrace

    def prepare_span(key, data, span)
      # REDACTED: add some tags
    end
  end
end

and trace_with the custom tracer like this:

# frozen_string_literal: true

class SomeSchema < GraphQL::Schema
  trace_with Util::DatadogTracer
end

How does datadog help you?
Some great tracing and profiling :)

Environment

  • datadog version: 2.2.0
  • Configuration block (Datadog.configure ...):
Datadog.configure do |c|
  c.runtime_metrics.enabled = true

  # REDACTED: some non-graphql instrumentation here

  c.tracing.report_hostname = true

  c.profiling.allocation_enabled = true
end
  • Ruby version: 3.3.0
  • Operating system: Windows 11 WSL2 Ubuntu 22.04
  • Relevant library versions: N/A

Metadata

Metadata

Assignees

Labels

bugInvolves a bugcommunityWas opened by a community member

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions