signalfx-tracing 0.2.0 → 1.0.0

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
  SHA1:
3
- metadata.gz: 59e199d192e04fadbc728d9ae6e1215ebacc8c5c
4
- data.tar.gz: 8e7f0415493fb1cb7edb524d38853786980b6b0a
3
+ metadata.gz: 20456ae4ee55db663d056e9351711cbf04207893
4
+ data.tar.gz: 55a020a7ad44fb93a5a09662608a8a92afed5f8c
5
5
  SHA512:
6
- metadata.gz: 4d3206648db6c9a62930298d3fdae672016e3032c4c077a09ea41f01d497bbf479b5b1e43cd1f3181ed2c41661621ce2034d649166c6cbe525c874a800684dd1
7
- data.tar.gz: 0f2ce82e85a6de5ed1f31811ccfe9958306d77b1b4c54fcb71fa768c7a26fac4edbb3156f051de4be18ad8837da1c77087fac89f77859072fb61b01add35cbf3
6
+ metadata.gz: e0442c92a625217ac9f41b6ec19a5c2d7f7156ecca6eab8cbaa476e0984824fd686e8544875bfd0858fc624fe4606cf54198bf90376d0f01f9b262d7a86460ab
7
+ data.tar.gz: 814046f126eabb8778f8dfca1739eede6ba7ed6780cb81c465ed57991ddc5a13889d934c1b9710cf37cb0ee0bd935be00d70d15474c5398156d1620bb938b1b3
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *.lock
2
+ *.gem
data/README.md CHANGED
@@ -1,14 +1,52 @@
1
- # Ruby auto-instrumenter
1
+ # SignalFx-Tracing Library for Ruby: An OpenTracing Auto-Instrumentor
2
+
3
+ This utility provides users with the ability of automatically configuring OpenTracing community-contributed [instrumentation libraries](https://github.com/opentracing-contrib) for their Ruby application via a single function.
4
+
5
+ ```ruby
6
+ require 'signalfx/tracing'
7
+
8
+ SignalFx::Tracing::Instrumenter.configure(auto_instrument:true)
9
+ ```
2
10
 
3
11
  ## Installation
4
12
 
5
- Add this line to your application's Gemfile:
13
+ ### General installation
14
+
15
+ ```bash
16
+ $ gem install signalfx-tracing
17
+ ```
18
+
19
+ The SignalFx Tracing Library for Ruby requires just enough dependencies to allow custom instrumentation for your application, with target library instrumentations needing to be installed manually.
20
+ The basic installation provides an `sfx-rb-trace-bootstrap` executable to assist with this process, which allows you to specify the desired libraries for instrumentation as a comma-separated list:
21
+
22
+ ```bash
23
+ $ sfx-rb-trace-bootstrap --install-deps rack,rails,activerecord,restclient
24
+ $ # use the --list option to see all available instrumentations
25
+ $ sfx-rb-trace-bootstrap --list
26
+ Available target libraries:
27
+ {"activerecord"=>["activerecord-opentracing", "~> 0.2.1"],
28
+ < ... >
29
+ "sinatra"=>["sinatra-instrumentation", "~> 0.1.2"]}
30
+ ```
31
+
32
+ If you'd prefer to install all the available instrumentations without the assistance of the `sfx-rb-trace-bootstrap` utility, please install the provided [gem dependencies](./gem.deps.rb).
33
+
34
+ ```bash
35
+ $ # Run from a cloned and updated https://github.com/signalfx/signalfx-ruby-tracing.git
36
+ $ cd signalfx-ruby-tracing
37
+ $ bundle install
38
+ $ gem install -g
39
+ ```
40
+
41
+ ### Installation in existing application
42
+
43
+ Specify the desired dependency by adding this line to your application's Gemfile:
6
44
 
7
45
  ```ruby
8
46
  gem 'signalfx-tracing'
9
47
  ```
10
48
 
11
- and then execute:
49
+ Then execute the following (or use your desired installation method for your application).
12
50
 
13
51
  ```bash
14
52
  $ bundle install
@@ -25,6 +63,8 @@ The instrumentation can be done automatically, where the auto-instrumenter will
25
63
  check for modules defined in the code and instrument them if available:
26
64
 
27
65
  ```ruby
66
+ require 'signalfx/tracing'
67
+
28
68
  SignalFx::Tracing::Instrumenter.configure(auto_instrument:true)
29
69
  ```
30
70
 
@@ -44,29 +84,25 @@ Valid lib names are listed below with the instrumentation documentation.
44
84
  - `tracer`: a preconfigured OpenTracing tracer to use. If one is not provided,
45
85
  a new tracer will be initialized.
46
86
  - Default: `nil`
47
- - `ingest_url`: this is the endpoint to which spans are sent by the tracer.
48
- - Default: `https://ingest.signalfx.com/v1/trace`
87
+ - `ingest_url`: this is the Smart Agent or Smart Gateway endpoint to which spans are sent by the tracer.
88
+ - Default: `http://localhost:9080/v1/trace`
49
89
  - `service_name`: service name to send spans under.
50
90
  - Default: `signalfx-ruby-tracing`
51
- - `access_token`: SignalFx access token for authentication.
91
+ - `access_token`: SignalFx access token for authentication. Unnecessary for most deployments.
52
92
  - Default: `''`
53
93
 
54
94
  Environment variables can be used to configure `service_name` and `access_token`
55
95
  if not given to the `configure` method.
56
96
 
57
97
  ```bash
58
- export SIGNALFX_ACCESS_TOKEN="<token>"
59
98
  export SIGNALFX_SERVICE_NAME="<service_name>"
60
- export SIGNALFX_INGEST_URL="<url>"
99
+ export SIGNALFX_ENDPOINT_URL="<url>"
100
+ export SIGNALFX_ACCESS_TOKEN="<token>"
61
101
  ```
62
102
 
63
103
  If these environment variables are not set, the values will default to the ones
64
104
  listed above.
65
105
 
66
- The `access_token` or `SIGNALFX_ACCESS_TOKEN` only needs to be set when sending
67
- spans to a SignalFx ingest directly. It is not required when using the Smart
68
- Agent or Smart Gateway.
69
-
70
106
  # Instrumentation
71
107
 
72
108
  This section contains details and configuration for specific frameworks.
@@ -92,7 +128,7 @@ When interfacing with these web servers as a Rack application, please configure
92
128
 
93
129
  | Library | Versions Supported |
94
130
  | ----------------------------------- | ------------------ |
95
- | [ActiveRecord](#active-record) | > 3.2 |
131
+ | [ActiveRecord](#active-record) | >= 5.x |
96
132
  | [Elasticsearch](#elasticsearch) | >= 5.x |
97
133
  | [Faraday](#faraday) | > 0.9.2 |
98
134
  | [Grape](#grape) | > 1.0.0 |
@@ -115,6 +151,11 @@ The source for this instrumentation is located [here](https://github.com/salemov
115
151
 
116
152
  ### Usage
117
153
 
154
+ ```bash
155
+ $ # install the instrumentation if not done previously
156
+ $ sfx-rb-trace-bootstrap -i activerecord
157
+ ```
158
+
118
159
  ```ruby
119
160
  SignalFx::Tracing::Instrumenter.configure do |p|
120
161
  p.instrument(:ActiveRecord)
@@ -130,6 +171,11 @@ The forked source for the instrumentation is located [here](https://github.com/s
130
171
 
131
172
  ### Usage
132
173
 
174
+ ```bash
175
+ $ # install the instrumentation if not done previously
176
+ $ sfx-rb-trace-bootstrap -i elasticsearch
177
+ ```
178
+
133
179
  ```ruby
134
180
  SignalFx::Tracing::Instrumenter.configure do |p|
135
181
  p.instrument(:Elasticsearch, auto_instrument: true)
@@ -163,6 +209,11 @@ The source for this instrumentation is located [here](https://github.com/opentra
163
209
 
164
210
  ### Usage
165
211
 
212
+ ```bash
213
+ $ # install the instrumentation if not done previously
214
+ $ sfx-rb-trace-bootstrap -i faraday
215
+ ```
216
+
166
217
  ```ruby
167
218
  SignalFx::Tracing::Instrumenter.configure do |p|
168
219
  p.instrument(:Faraday)
@@ -189,6 +240,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
189
240
 
190
241
  ### Usage
191
242
 
243
+ ```bash
244
+ $ # install the instrumentation if not done previously
245
+ $ sfx-rb-trace-bootstrap -i grape
246
+ ```
247
+
192
248
  ```ruby
193
249
  SignalFx::Tracing::Instrumenter.configure do |p|
194
250
  p.instrument(:Grape)
@@ -203,6 +259,11 @@ end
203
259
  If patching is disabled, but spans nested by request are still desired, then the
204
260
  Rack middleware must be manually added to the API class.
205
261
 
262
+ ```bash
263
+ $ # install the instrumentation if not done previously
264
+ $ sfx-rb-trace-bootstrap -i rack
265
+ ```
266
+
206
267
  ```ruby
207
268
  require 'rack/tracer'
208
269
 
@@ -222,6 +283,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
222
283
 
223
284
  ### Usage
224
285
 
286
+ ```bash
287
+ $ # install the instrumentation if not done previously
288
+ $ sfx-rb-trace-bootstrap -i mongodb
289
+ ```
290
+
225
291
  ```ruby
226
292
  SignalFx::Tracing::Instrumenter.configure do |p|
227
293
  p.instrument(:MongoDB)
@@ -236,6 +302,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
236
302
 
237
303
  ### Usage
238
304
 
305
+ ```bash
306
+ $ # install the instrumentation if not done previously
307
+ $ sfx-rb-trace-bootstrap -i mysql2
308
+ ```
309
+
239
310
  ```ruby
240
311
  SignalFx::Tracing::Instrumenter.configure do |p|
241
312
  p.instrument(:Mysql2)
@@ -268,6 +339,11 @@ The source for this instrumentation is located [here](https://github.com/opentra
268
339
 
269
340
  ### Usage
270
341
 
342
+ ```bash
343
+ $ # install the instrumentation if not done previously
344
+ $ sfx-rb-trace-bootstrap -i rack
345
+ ```
346
+
271
347
  ```ruby
272
348
  SignalFx::Tracing::Instrumenter.configure do |p|
273
349
  p.instrument(:Rack)
@@ -285,6 +361,11 @@ The forked source for this instrumentation is located [here](https://github.com/
285
361
 
286
362
  ### Usage
287
363
 
364
+ ```bash
365
+ $ # install the instrumentation if not done previously
366
+ $ sfx-rb-trace-bootstrap -i rails
367
+ ```
368
+
288
369
  ```ruby
289
370
  SignalFx::Tracing::Instrumenter.configure do |p|
290
371
  p.instrument(:Rails)
@@ -315,6 +396,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
315
396
 
316
397
  ### Usage
317
398
 
399
+ ```bash
400
+ $ # install the instrumentation if not done previously
401
+ $ sfx-rb-trace-bootstrap -i redis
402
+ ```
403
+
318
404
  ```ruby
319
405
  SignalFx::Tracing::Instrumenter.configure do |p|
320
406
  p.instrument(:Redis, tracer: tracer)
@@ -334,6 +420,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
334
420
 
335
421
  ### Usage
336
422
 
423
+ ```bash
424
+ $ # install the instrumentation if not done previously
425
+ $ sfx-rb-trace-bootstrap -i restclient
426
+ ```
427
+
337
428
  ```ruby
338
429
  SignalFx::Tracing::Instrumenter.configure do |p|
339
430
  p.instrument(:RestClient, tracer: tracer, propagate: true)
@@ -354,6 +445,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
354
445
 
355
446
  ### Usage
356
447
 
448
+ ```bash
449
+ $ # install the instrumentation if not done previously
450
+ $ sfx-rb-trace-bootstrap -i sequel
451
+ ```
452
+
357
453
  ```ruby
358
454
  SignalFx::Tracing::Instrumenter.configure do |p|
359
455
  p.instrument(:Sequel)
@@ -375,6 +471,11 @@ The source for this instrumentation is located [here](https://github.com/signalf
375
471
 
376
472
  ### Usage
377
473
 
474
+ ```bash
475
+ $ # install the instrumentation if not done previously
476
+ $ sfx-rb-trace-bootstrap -i sinatra
477
+ ```
478
+
378
479
  ```ruby
379
480
  SignalFx::Tracing::Instrumenter.configure do |p|
380
481
  p.instrument(:Sinatra)
@@ -0,0 +1,52 @@
1
+ #!/usr/bin/env ruby -rubygems
2
+ require 'optparse'
3
+ require 'ostruct'
4
+ require 'pp'
5
+
6
+ instrumentations = {
7
+ "activerecord" => ["activerecord-opentracing", "~> 0.2.1"],
8
+ "elasticsearch" => ["signalfx-elasticsearch-instrumentation", "~> 0.1.0"],
9
+ "faraday" => ["signalfx-faraday-instrumentation", "~> 0.1.1"],
10
+ "grape" => ["grape-instrumentation", "~> 0.1.0"],
11
+ "mongodb" => ["mongodb-instrumentation", "~> 0.1.1"],
12
+ "mysql2" => ["mysql2-instrumentation", "~> 0.1.0"],
13
+ "nethttp" => ["nethttp-instrumentation", "~> 0.1.2"],
14
+ "rack" => ["rack-tracer", "~> 0.8"],
15
+ "rails" => ["rails-instrumentation", "~> 0.1.2"],
16
+ "redis" => ["redis-instrumentation", "~> 0.1.1"],
17
+ "restclient" => ["restclient-instrumentation", "~> 0.1.1"],
18
+ "sequel" => ["sequel-instrumentation", "~> 0.1.0"],
19
+ "sinatra" => ["sinatra-instrumentation", "~> 0.1.2"]
20
+ }
21
+
22
+ options = OpenStruct.new
23
+ options.target_libraries = []
24
+
25
+
26
+ parser = OptionParser.new do |opts|
27
+ opts.banner = 'Usage: sfx-rb-trace-bootstrap --install-deps [deps]'
28
+
29
+ opts.on('-l', '--list', 'List available library instrumentations.') do |l|
30
+ puts 'Available target libraries:'
31
+ pp(instrumentations)
32
+ end
33
+ opts.on('-i lib1,lib2', '--install-deps lib1,lib2', Array, 'Install instrumentations for target libraries (comma-separated).') do |list|
34
+ options.target_libraries = list
35
+ end
36
+ end
37
+
38
+
39
+ def install_instrumentors(instrumentors, libs)
40
+ libs.each do |lib|
41
+ if instrumentors.has_key?(lib)
42
+ target = instrumentors[lib]
43
+ puts %Q{Installing instrumentation for target library "#{lib}": #{target[0]} "#{target[1]}".}
44
+ Gem.install(*target)
45
+ else
46
+ puts %Q{signalfx-tracing has no target library "#{lib}".}
47
+ end
48
+ end
49
+ end
50
+
51
+ parser.parse(ARGV)
52
+ install_instrumentors(instrumentations, options.target_libraries)
data/gem.deps.rb ADDED
@@ -0,0 +1,15 @@
1
+ group :instrumentations do
2
+ gem 'activerecord-opentracing', '~> 0.2.1'
3
+ gem 'grape-instrumentation', "~> 0.1.0"
4
+ gem 'mongodb-instrumentation', '~> 0.1.1'
5
+ gem 'mysql2-instrumentation', '~> 0.1.0'
6
+ gem 'nethttp-instrumentation', '~> 0.1.2'
7
+ gem 'rack-tracer', '~> 0.8'
8
+ gem 'rails-instrumentation', '0.1.2'
9
+ gem 'redis-instrumentation', '~> 0.1.1'
10
+ gem 'restclient-instrumentation', '~> 0.1.1'
11
+ gem 'sequel-instrumentation', '~> 0.1.0'
12
+ gem 'signalfx-elasticsearch-instrumentation', '~> 0.1.0'
13
+ gem 'signalfx-faraday-instrumentation', '~> 0.1.1'
14
+ gem 'sinatra-instrumentation', '~> 0.1.2'
15
+ end
@@ -16,7 +16,12 @@ module SignalFx
16
16
  return
17
17
  end
18
18
 
19
- require 'active_record/opentracing'
19
+ begin
20
+ require 'active_record/opentracing'
21
+ rescue LoadError => e
22
+ puts e.message
23
+ return
24
+ end
20
25
  ::ActiveRecord::OpenTracing.instrument if !@instrumented
21
26
  @instrumented = true
22
27
  end
@@ -18,7 +18,12 @@ module SignalFx
18
18
  return
19
19
  end
20
20
 
21
- require 'elasticsearch-tracer'
21
+ begin
22
+ require 'elasticsearch-tracer'
23
+ rescue LoadError => e
24
+ puts e.message
25
+ return
26
+ end
22
27
 
23
28
  patch_new if opts.fetch(:auto_instrument, false)
24
29
 
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'faraday/tracer'
17
+ begin
18
+ require 'faraday/tracer'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
 
19
24
  patch_initialize if !@instrumented
20
25
  @instrumented = true
@@ -18,7 +18,12 @@ module SignalFx
18
18
  return
19
19
  end
20
20
 
21
- require 'grape/instrumentation'
21
+ begin
22
+ require 'grape/instrumentation'
23
+ rescue LoadError => e
24
+ puts e.message
25
+ return
26
+ end
22
27
 
23
28
  tracer = opts.fetch(:tracer, OpenTracing.global_tracer)
24
29
  parent_span = opts.fetch(:parent_span, nil)
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'mongodb/instrumentation'
17
+ begin
18
+ require 'mongodb/instrumentation'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
 
19
24
  ::MongoDB::Instrumentation.instrument
20
25
  end
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'mysql2/instrumentation'
17
+ begin
18
+ require 'mysql2/instrumentation'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
 
19
24
  ::Mysql2::Instrumentation.instrument(tracer: SignalFx::Tracing::Instrumenter.tracer) if !@instrumented
20
25
  @instrumented = true
@@ -8,7 +8,12 @@ module SignalFx
8
8
  class << self
9
9
 
10
10
  def instrument(opts = {})
11
- require 'net/http/instrumentation'
11
+ begin
12
+ require 'net/http/instrumentation'
13
+ rescue LoadError => e
14
+ puts e.message
15
+ return
16
+ end
12
17
 
13
18
  tracer = opts.fetch(:tracer, OpenTracing.global_tracer)
14
19
  ignore_request = lambda { Thread.current.thread_variable_get(:http_sender_thread) }
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'rack/tracer'
17
+ begin
18
+ require 'rack/tracer'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -18,8 +18,13 @@ module SignalFx
18
18
  return
19
19
  end
20
20
 
21
- require 'rails/instrumentation'
22
- require 'rack/tracer'
21
+ begin
22
+ require 'rails/instrumentation'
23
+ require 'rack/tracer'
24
+ rescue LoadError => e
25
+ puts e.message
26
+ return
27
+ end
23
28
 
24
29
  if opts.fetch(:rack_tracer, true)
25
30
  # add rack middlewares
@@ -13,7 +13,12 @@ module SignalFx
13
13
  return
14
14
  end
15
15
 
16
- require 'redis/instrumentation'
16
+ begin
17
+ require 'redis/instrumentation'
18
+ rescue LoadError => e
19
+ puts e.message
20
+ return
21
+ end
17
22
 
18
23
  tracer = opts.fetch(:tracer, OpenTracing.global_tracer)
19
24
  ::Redis::Instrumentation.instrument(tracer: tracer)
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'restclient/instrumentation'
17
+ begin
18
+ require 'restclient/instrumentation'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
 
19
24
  tracer = opts.fetch(:tracer, OpenTracing.global_tracer)
20
25
  propagate = opts.fetch(:propagate, false)
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'sequel/instrumentation'
17
+ begin
18
+ require 'sequel/instrumentation'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
 
19
24
  tracer = opts.fetch(:tracer, OpenTracing.global_tracer)
20
25
 
@@ -14,7 +14,12 @@ module SignalFx
14
14
  return
15
15
  end
16
16
 
17
- require 'sinatra/instrumentation'
17
+ begin
18
+ require 'sinatra/instrumentation'
19
+ rescue LoadError => e
20
+ puts e.message
21
+ return
22
+ end
18
23
  end
19
24
  end
20
25
  end
@@ -1,5 +1,5 @@
1
1
  module Signalfx
2
2
  module Tracing
3
- VERSION = "0.2.0"
3
+ VERSION = "1.0.0"
4
4
  end
5
5
  end
@@ -14,7 +14,7 @@ module SignalFx
14
14
  attr_accessor :tracer, :reporter
15
15
 
16
16
  def configure(tracer: nil,
17
- ingest_url: ENV['SIGNALFX_INGEST_URL'] || 'https://ingest.signalfx.com/v1/trace',
17
+ ingest_url: ENV['SIGNALFX_ENDPOINT_URL'] || ENV['SIGNALFX_INGEST_URL'] || 'http://localhost:9080/v1/trace',
18
18
  service_name: ENV['SIGNALFX_SERVICE_NAME'] || "signalfx-ruby-tracing",
19
19
  access_token: ENV['SIGNALFX_ACCESS_TOKEN'],
20
20
  auto_instrument: false)
@@ -5,30 +5,19 @@ require "signalfx/tracing/version"
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "signalfx-tracing"
7
7
  spec.version = Signalfx::Tracing::VERSION
8
- spec.authors = ["Ashwin Chandrasekar"]
9
- spec.email = ["achandrasekar@signalfx.com"]
8
+ spec.authors = ["SignalFx, Inc."]
9
+ spec.email = ["info@signalfx.com"]
10
10
 
11
11
  spec.summary = %q{Auto-instrumentation framework for Ruby}
12
12
  # spec.description = %q{TODO: Write a longer description or delete this line.}
13
13
  spec.homepage = "https://github.com/signalfx/signalfx-ruby-tracing"
14
14
  spec.license = "Apache-2.0"
15
15
 
16
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
17
- # to allow pushing to a single host or delete this section to allow pushing to any host.
18
- # if spec.respond_to?(:metadata)
19
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
20
- # else
21
- # raise "RubyGems 2.0 or newer is required to protect against " \
22
- # "public gem pushes."
23
- # end
24
-
25
- # Specify which files should be added to the gem when it is released.
26
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
27
16
  spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
28
17
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
29
18
  end
30
- spec.bindir = "exe"
31
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
19
+ spec.bindir = "bin"
20
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
32
21
  spec.require_paths = ["lib"]
33
22
 
34
23
  spec.add_development_dependency "bundler", "~> 1.16"
@@ -38,21 +27,11 @@ Gem::Specification.new do |spec|
38
27
  spec.add_dependency "opentracing", "> 0.3.0"
39
28
  spec.add_dependency "jaeger-client", "~> 0.10.0"
40
29
 
41
- spec.add_dependency "sinatra-instrumentation", "~> 0.1.2"
42
- spec.add_dependency "nethttp-instrumentation", "~> 0.1.2"
43
- spec.add_dependency "restclient-instrumentation", "~> 0.1.1"
44
- spec.add_dependency "mongodb-instrumentation", "~> 0.1.1"
45
- spec.add_dependency "mysql2-instrumentation", "~> 0.1.0"
46
- spec.add_dependency "redis-instrumentation", "~> 0.1.0"
47
- spec.add_dependency "sequel-instrumentation", "~> 0.1.0"
48
- spec.add_dependency "grape-instrumentation", "~> 0.1.0"
49
- spec.add_dependency "rails-instrumentation", "~> 0.1.2"
50
-
51
- # forks
52
- spec.add_dependency "signalfx-elasticsearch-instrumentation", "~> 0.1.0"
53
- spec.add_dependency "signalfx-faraday-instrumentation", "~> 0.1.1"
30
+ # We are no longer setting all available instrumentations as dependencies.
31
+ # Manual installation via bootstrapper or gem.deps.rb is now required.
32
+ # `sfx-rb-trace-bootstrap -i sinatra,redis,etc.`
33
+ # `gem install -g`
54
34
 
55
- # external
56
- spec.add_dependency "rack-tracer", "~> 0.8"
57
- spec.add_dependency "activerecord-opentracing", "~> 0.2.1"
35
+ # stdlib instrumentations
36
+ spec.add_dependency "nethttp-instrumentation", "~> 0.1.2"
58
37
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: signalfx-tracing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
- - Ashwin Chandrasekar
7
+ - SignalFx, Inc.
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-08 00:00:00.000000000 Z
11
+ date: 2019-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.10.0
69
- - !ruby/object:Gem::Dependency
70
- name: sinatra-instrumentation
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.1.2
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.1.2
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: nethttp-instrumentation
85
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,173 +80,21 @@ dependencies:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
82
  version: 0.1.2
97
- - !ruby/object:Gem::Dependency
98
- name: restclient-instrumentation
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: 0.1.1
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: 0.1.1
111
- - !ruby/object:Gem::Dependency
112
- name: mongodb-instrumentation
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 0.1.1
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 0.1.1
125
- - !ruby/object:Gem::Dependency
126
- name: mysql2-instrumentation
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: 0.1.0
132
- type: :runtime
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: 0.1.0
139
- - !ruby/object:Gem::Dependency
140
- name: redis-instrumentation
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: 0.1.0
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: 0.1.0
153
- - !ruby/object:Gem::Dependency
154
- name: sequel-instrumentation
155
- requirement: !ruby/object:Gem::Requirement
156
- requirements:
157
- - - "~>"
158
- - !ruby/object:Gem::Version
159
- version: 0.1.0
160
- type: :runtime
161
- prerelease: false
162
- version_requirements: !ruby/object:Gem::Requirement
163
- requirements:
164
- - - "~>"
165
- - !ruby/object:Gem::Version
166
- version: 0.1.0
167
- - !ruby/object:Gem::Dependency
168
- name: grape-instrumentation
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: 0.1.0
174
- type: :runtime
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: 0.1.0
181
- - !ruby/object:Gem::Dependency
182
- name: rails-instrumentation
183
- requirement: !ruby/object:Gem::Requirement
184
- requirements:
185
- - - "~>"
186
- - !ruby/object:Gem::Version
187
- version: 0.1.2
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: 0.1.2
195
- - !ruby/object:Gem::Dependency
196
- name: signalfx-elasticsearch-instrumentation
197
- requirement: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: 0.1.0
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
205
- requirements:
206
- - - "~>"
207
- - !ruby/object:Gem::Version
208
- version: 0.1.0
209
- - !ruby/object:Gem::Dependency
210
- name: signalfx-faraday-instrumentation
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - "~>"
214
- - !ruby/object:Gem::Version
215
- version: 0.1.1
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - "~>"
221
- - !ruby/object:Gem::Version
222
- version: 0.1.1
223
- - !ruby/object:Gem::Dependency
224
- name: rack-tracer
225
- requirement: !ruby/object:Gem::Requirement
226
- requirements:
227
- - - "~>"
228
- - !ruby/object:Gem::Version
229
- version: '0.8'
230
- type: :runtime
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
233
- requirements:
234
- - - "~>"
235
- - !ruby/object:Gem::Version
236
- version: '0.8'
237
- - !ruby/object:Gem::Dependency
238
- name: activerecord-opentracing
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: 0.2.1
244
- type: :runtime
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: 0.2.1
251
83
  description:
252
84
  email:
253
- - achandrasekar@signalfx.com
254
- executables: []
85
+ - info@signalfx.com
86
+ executables:
87
+ - sfx-rb-trace-bootstrap
255
88
  extensions: []
256
89
  extra_rdoc_files: []
257
90
  files:
91
+ - ".gitignore"
258
92
  - Gemfile
259
93
  - LICENSE
260
94
  - README.md
261
95
  - Rakefile
262
- - bin/console
263
- - bin/setup
96
+ - bin/sfx-rb-trace-bootstrap
97
+ - gem.deps.rb
264
98
  - lib/signalfx/tracing.rb
265
99
  - lib/signalfx/tracing/compat.rb
266
100
  - lib/signalfx/tracing/compat/phusion_passenger.rb
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "signalfx/tracing"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here