skylight-core 4.2.0.beta → 4.2.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
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