skylight-core 4.2.0.beta → 4.2.0.beta2

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: 7836c1098f49c2f7b0f8581656367354e1ccec3c148f593a96df4deef011e9c9
4
- data.tar.gz: 390b30be3374c7bcb827806c230d36772a96bef0f5692c83a2730d4face3f162
3
+ metadata.gz: 34c416285f52795281bbd430f70367601d861b0af6f1b159ea4815aafa612016
4
+ data.tar.gz: 9a2608e5e0285a90ba5531a0200e3621611cca52034e2ab717564205d4583839
5
5
  SHA512:
6
- metadata.gz: ab419f49f172e95c075796d849ad643eb84032a98fe392b38101d93a3c6a7c2477d381f224752b0ae20ad607a7f883fdcbda4485f34f03e2ffaace66a8c1e18b
7
- data.tar.gz: f1db03e7f479a3853036f6c7d3f94b7081cd5545cf4286d83393f8b19ff4e350f29cd91a869d93f0cb505d8a22dd4439165f477c27290aa5ce14b13649dc34f0
6
+ metadata.gz: 755507e9ef7779f9dc1062c1a0fe8d934510a41fd01813f5389fee8c2f0fb5803dccc5da73536dd65a5ac5c1b87fe25622e71faa25a76d952bc4d762dbfff67f
7
+ data.tar.gz: 43ad79dbd48363114759634112dcacfbe770cbaa00827cb0277a586d67154952efe47242304e4f68a6f053e59d6819189272c4c48f9c552c78b22e4d07b52954
@@ -36,6 +36,7 @@ module Skylight::Core
36
36
  # == Instrumenter ==
37
37
  "ENABLE_SEGMENTS" => :enable_segments,
38
38
  "ENABLE_SIDEKIQ" => :enable_sidekiq,
39
+ "SINATRA_ROUTE_PREFIXES" => :sinatra_route_prefixes,
39
40
 
40
41
  # == User config settings ==
41
42
  "USER_CONFIG_PATH" => :user_config_path,
@@ -54,6 +55,7 @@ module Skylight::Core
54
55
  log_sql_parse_errors: true,
55
56
  enable_segments: true,
56
57
  enable_sidekiq: false,
58
+ sinatra_route_prefixes: false,
57
59
  'heroku.dyno_info_path': "/etc/heroku/dyno"
58
60
  }
59
61
  end
@@ -411,6 +413,10 @@ module Skylight::Core
411
413
  !!get(:enable_sidekiq)
412
414
  end
413
415
 
416
+ def sinatra_route_prefixes?
417
+ !!get(:sinatra_route_prefixes)
418
+ end
419
+
414
420
  def user_config
415
421
  @user_config ||= UserConfig.new(self)
416
422
  end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Skylight::Core
4
+ module Probes
5
+ module GraphQL
6
+ class Probe
7
+ def install
8
+ ::GraphQL::Schema.class_eval do
9
+ alias_method :multiplex_without_sk, :multiplex
10
+
11
+ # Schema#execute also delegates to multiplex, so this is the only method
12
+ # we need to override.
13
+ def multiplex(*args, &block)
14
+ sk_add_tracer
15
+ multiplex_without_sk(*args, &block)
16
+ end
17
+
18
+ def sk_add_tracer
19
+ Skylight::Core::Config::MUTEX.synchronize do
20
+ graphql_tracer = ::GraphQL::Tracing::ActiveSupportNotificationsTracing
21
+ unless tracers.include?(graphql_tracer)
22
+ $stdout.puts "[SKYLIGHT::CORE] Adding tracer 'GraphQL::Tracing::ActiveSupportNotificationsTracing' to schema"
23
+ tracers << graphql_tracer
24
+ end
25
+
26
+ class << self
27
+ # Remove the probe and reset multiplex/execute to original version
28
+ # after the tracer has been added
29
+ alias_method :multiplex, :multiplex_without_sk
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+
38
+ register(:graphql, "GraphQL", "graphql", GraphQL::Probe.new)
39
+ end
40
+ end
@@ -36,8 +36,18 @@ module Skylight::Core
36
36
  dispatch_without_sk!(*args, &block).tap do
37
37
  Skylight::Core::Fanout.each_trace do |trace|
38
38
  # Set the endpoint name to the route name
39
- route = env["sinatra.route"]
40
- trace.endpoint = route if route
39
+ if (route = env["sinatra.route"])
40
+ # Include the app's mount point (if available)
41
+ script_name = trace.instrumenter.config.sinatra_route_prefixes? && env["SCRIPT_NAME"]
42
+
43
+ trace.endpoint =
44
+ if script_name && !script_name.empty?
45
+ verb, path = route.split(" ", 2)
46
+ "#{verb} [#{script_name}]#{path}"
47
+ else
48
+ route
49
+ end
50
+ end
41
51
  end
42
52
  end
43
53
  end
@@ -1,5 +1,5 @@
1
1
  module Skylight
2
2
  module Core
3
- VERSION = "4.2.0-beta".freeze
3
+ VERSION = "4.2.0-beta2".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skylight-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.beta
4
+ version: 4.2.0.beta2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tilde, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-19 00:00:00.000000000 Z
11
+ date: 2019-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -224,6 +224,7 @@ files:
224
224
  - lib/skylight/core/probes/excon/middleware.rb
225
225
  - lib/skylight/core/probes/faraday.rb
226
226
  - lib/skylight/core/probes/grape.rb
227
+ - lib/skylight/core/probes/graphql.rb
227
228
  - lib/skylight/core/probes/httpclient.rb
228
229
  - lib/skylight/core/probes/middleware.rb
229
230
  - lib/skylight/core/probes/mongo.rb