diff --git a/CHANGELOG.md b/CHANGELOG.md index bb8c27d..3482243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## master +- [PR#78](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/78) +Migrate CompiledQueries instrumentation to tracer ([@DmitryTsepelev][]) + ## 1.8.1 (2024-06-01) - [PR#77](https://github.com/DmitryTsepelev/graphql-ruby-persisted_queries/pull/77) diff --git a/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb b/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb index ffbc47d..dc88837 100644 --- a/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb +++ b/lib/graphql/persisted_queries/compiled_queries/instrumentation.rb @@ -19,6 +19,22 @@ def before_query(query) def after_query(*); end end + + # Instrumentations were deprecated in 2.2.5, this is a module to migrate to new interface + module Tracer + def execute_query(query:) + GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query) + super + end + + def execute_multiplex(multiplex:) + multiplex.queries.each do |query| + GraphQL::PersistedQueries::CompiledQueries::Instrumentation.before_query(query) + end + + super + end + end end end end diff --git a/lib/graphql/persisted_queries/schema_patch.rb b/lib/graphql/persisted_queries/schema_patch.rb index 9ffd923..08ffd3f 100644 --- a/lib/graphql/persisted_queries/schema_patch.rb +++ b/lib/graphql/persisted_queries/schema_patch.rb @@ -26,8 +26,7 @@ def patch(schema, compiled_queries) def configure_compiled_queries(schema) if graphql_ruby_after_2_2_5? - schema.trace_with(GraphQL::Tracing::LegacyHooksTrace) - schema.instance_exec { own_instrumenters[:query] << CompiledQueries::Instrumentation } + schema.trace_with(GraphQL::PersistedQueries::CompiledQueries::Instrumentation::Tracer) else schema.instrument :query, CompiledQueries::Instrumentation end