opentelemetry-instrumentation-graphql 0.31.1 → 0.31.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 64f8f9966d8fdab6c0ab53eb75e7c3bbfa0b1041a0c26a923b379a103add924a
4
- data.tar.gz: 9f1074f08f34001c55b6eec7e278d3d7111fbbba048beb7e2b220f9778fe59b8
3
+ metadata.gz: fc3089ebd46f04ed68628b754f5416fff8367b3745eb040339b58f8fc8b0cb61
4
+ data.tar.gz: 4a89d9b32c7cfe68b54f41c2b3847a57058fcfc754082243882c4f2c7355dea4
5
5
  SHA512:
6
- metadata.gz: 33843d18497e64369e84c21e23721f4f119c9ea15b4914e8fed9dd7645a5a392823dff1068b5625c675766c656ec3ac3a1ede7fae45f4cfa88a4505b99d5e76e
7
- data.tar.gz: d8f9957dd998bc2e744a29a237f31fce252c869af66b5bf7a3a1f7e540780601eba18f6cb433bb1d56d6aa8c6434115ae57e4ac493b47277d5b29b689f4501c4
6
+ metadata.gz: 3843bfe4e68c6c99e7c9c77f42f08bc3546ce6f347ac221d10b6bfe69d3a5a325565bd964efd236db1a4e4e5c2cce3430bdfb4a32863fcdec3c7dc02d5819efc
7
+ data.tar.gz: cd85e203ccf20dde225534c3959a426abd7be2ee12fac0dc33a8961b6925821ad3dd14aebd13286ccc769f81a36d48cae947a338f34c69361271b5c9b4f9f84d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # Release History: opentelemetry-instrumentation-graphql
2
2
 
3
+ ### v0.31.2 / 2025-10-28
4
+
5
+ * FIXED: Patch dataloader to propagate context to new fiber
6
+ * FIXED: Does not trace resolve type unless enable
7
+
3
8
  ### v0.31.1 / 2025-10-22
4
9
 
5
10
  * FIXED: Update opentelemetry-instrumentation-base dependency
@@ -27,6 +27,8 @@ module OpenTelemetry
27
27
  require_relative 'tracers/graphql_trace'
28
28
  install_new_tracer(config)
29
29
  end
30
+
31
+ patch
30
32
  end
31
33
 
32
34
  present do
@@ -41,6 +43,10 @@ module OpenTelemetry
41
43
  Gem::Requirement.new('>= 2.0.19').satisfied_by?(gem_version)
42
44
  end
43
45
 
46
+ def dataloader_has_spawn_fiber?
47
+ Gem::Requirement.new('>= 2.1.8').satisfied_by?(gem_version)
48
+ end
49
+
44
50
  ## Supported configuration keys for the install config hash:
45
51
  #
46
52
  # The enable_platform_field key expects a boolean value,
@@ -96,6 +102,13 @@ module OpenTelemetry
96
102
  end
97
103
  end
98
104
  end
105
+
106
+ def patch
107
+ return unless dataloader_has_spawn_fiber?
108
+
109
+ require_relative 'patches/dataloader'
110
+ ::GraphQL::Dataloader.prepend(Patches::Dataloader)
111
+ end
99
112
  end
100
113
  end
101
114
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright The OpenTelemetry Authors
4
+ #
5
+ # SPDX-License-Identifier: Apache-2.0
6
+
7
+ module OpenTelemetry
8
+ module Instrumentation
9
+ module GraphQL
10
+ module Patches
11
+ # Patches GraphQL::Dataloader to propagate context to new fiber
12
+ module Dataloader
13
+ def spawn_fiber(&block)
14
+ ctx = OpenTelemetry::Context.current
15
+ super do
16
+ OpenTelemetry::Context.with_current(ctx, &block)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -148,12 +148,16 @@ module OpenTelemetry
148
148
 
149
149
  def resolve_type(query:, type:, object:, &)
150
150
  platform_key = @_otel_resolve_type_key_cache[type]
151
+ return super unless platform_key
152
+
151
153
  attributes = @_otel_type_attrs_cache[type]
152
154
  tracer.in_span(platform_key, attributes: attributes) { super }
153
155
  end
154
156
 
155
157
  def resolve_type_lazy(query:, type:, object:, &)
156
158
  platform_key = @_otel_resolve_type_key_cache[type]
159
+ return super unless platform_key
160
+
157
161
  attributes = @_otel_lazy_type_attrs_cache[type]
158
162
  tracer.in_span(platform_key, attributes: attributes) { super }
159
163
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module GraphQL
10
- VERSION = '0.31.1'
10
+ VERSION = '0.31.2'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-graphql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.1
4
+ version: 0.31.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-10-22 00:00:00.000000000 Z
11
+ date: 2025-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-instrumentation-base
@@ -39,6 +39,7 @@ files:
39
39
  - lib/opentelemetry/instrumentation.rb
40
40
  - lib/opentelemetry/instrumentation/graphql.rb
41
41
  - lib/opentelemetry/instrumentation/graphql/instrumentation.rb
42
+ - lib/opentelemetry/instrumentation/graphql/patches/dataloader.rb
42
43
  - lib/opentelemetry/instrumentation/graphql/tracers/graphql_trace.rb
43
44
  - lib/opentelemetry/instrumentation/graphql/tracers/graphql_tracer.rb
44
45
  - lib/opentelemetry/instrumentation/graphql/version.rb
@@ -46,10 +47,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby-contrib
46
47
  licenses:
47
48
  - Apache-2.0
48
49
  metadata:
49
- changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-graphql/0.31.1/file/CHANGELOG.md
50
+ changelog_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-graphql/0.31.2/file/CHANGELOG.md
50
51
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/tree/main/instrumentation/graphql
51
52
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues
52
- documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-graphql/0.31.1
53
+ documentation_uri: https://rubydoc.info/gems/opentelemetry-instrumentation-graphql/0.31.2
53
54
  post_install_message:
54
55
  rdoc_options: []
55
56
  require_paths: