Class: GraphQL::Tracing::SkylightTracing
- Inherits:
-
PlatformTracing
- Object
- PlatformTracing
- GraphQL::Tracing::SkylightTracing
- Defined in:
- lib/graphql/tracing/skylight_tracing.rb
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ SkylightTracing
constructor
A new instance of SkylightTracing.
- #platform_field_key(type, field) ⇒ Object
- #platform_trace(platform_key, key, data) ⇒ Object
Methods inherited from PlatformTracing
#instrument, #trace, #trace_field, use
Constructor Details
#initialize(options = {}) ⇒ SkylightTracing
Returns a new instance of SkylightTracing.
20 21 22 23 |
# File 'lib/graphql/tracing/skylight_tracing.rb', line 20 def initialize( = {}) @set_endpoint_name = .fetch(:set_endpoint_name, false) super end |
Instance Method Details
#platform_field_key(type, field) ⇒ Object
56 57 58 |
# File 'lib/graphql/tracing/skylight_tracing.rb', line 56 def platform_field_key(type, field) "graphql.#{type.name}.#{field.name}" end |
#platform_trace(platform_key, key, data) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/graphql/tracing/skylight_tracing.rb', line 25 def platform_trace(platform_key, key, data) if key == "execute_query" query = data[:query] title = query.selected_operation_name || "<anonymous>" category = platform_key set_endpoint_name_override = query.context[:set_skylight_endpoint_name] if set_endpoint_name_override == true || (set_endpoint_name_override.nil? && @set_endpoint_name) # Assign the endpoint so that queries will be grouped instrumenter = Skylight.instrumenter if instrumenter current_trace = instrumenter.current_trace if current_trace op_type = query.selected_operation ? query.selected_operation.operation_type : "query" endpoint = "GraphQL/#{op_type}.#{title}" current_trace.endpoint = endpoint end end end elsif key.start_with?("execute_field") title = platform_key category = key else title = key category = platform_key end Skylight.instrument(category: category, title: title) do yield end end |