rails_opentracer 0.1.38 → 0.1.39

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: a9cacc7a29a63d008cefb04bae669fe266a4f65a
4
- data.tar.gz: 431dda27e92b753aee879fcc9aebca5c83e1b8d3
3
+ metadata.gz: 39d1dfa77075290e901c017c8f00789e30df71a6
4
+ data.tar.gz: 576088d214e88b6134050705e455d69418f229de
5
5
  SHA512:
6
- metadata.gz: a4915681e41a6ce227dec39fd686bdcdd06941f3a51f720b65ad93e22a3b3974236969ecf428ddf1e7b79a6cd6f0da3c912f6b333d35030bfdcb06e417f26f64
7
- data.tar.gz: 513f453c113d70cca0adb7e0224b6e67ee3328f808f9e8b7835688292cdec517ae1c57a1409b853b21da353ee76d169163ac177a04074ec8177ecfdbcc1393ca
6
+ metadata.gz: 52a91be480cf4f2961dd69ebef2685274a9ee5cd1a8e487a900eac385aa4f170ca71049a6232414f47da9dd55395e231c0ee3d9899824872247ef3ee53995a71
7
+ data.tar.gz: '0830abd1913f9f780b2532fd06f170288f8b30bdab4a525c5b267b0ba5de6779cfcd219a14d94109311290af38d6eb907715b98010cae3bd20cfbb2fd1d7929a'
data/.rubocop.yml ADDED
@@ -0,0 +1,74 @@
1
+ # Configuration used to check ruby source code with rubocop.
2
+
3
+ AllCops:
4
+ TargetRubyVersion: 2.4.2
5
+ EnabledByDefault: true
6
+
7
+ # Metrics
8
+
9
+ Metrics/LineLength:
10
+ Enabled: no
11
+
12
+ Metrics/MethodLength:
13
+ Enabled: no
14
+
15
+ Metrics/AbcSize:
16
+ Enabled: yes
17
+ Exclude:
18
+ - lib/rails_opentracer/middleware.rb
19
+
20
+ Metrics/PerceivedComplexity:
21
+ Enabled: yes
22
+ Exclude:
23
+ - lib/rails_opentracer/middleware.rb
24
+
25
+ # Rails
26
+
27
+ Rails/ApplicationRecord:
28
+ Enabled: no
29
+
30
+ # Style
31
+
32
+ Style/Copyright:
33
+ Enabled: no
34
+
35
+ Style/Documentation:
36
+ Enabled: no
37
+
38
+ Style/DocumentationMethod:
39
+ Enabled: no
40
+
41
+ Style/FrozenStringLiteralComment:
42
+ Enabled: no
43
+
44
+ Style/GlobalVars:
45
+ Enabled: yes
46
+ Exclude:
47
+ - lib/rails_opentracer.rb
48
+ - lib/rails_opentracer/middleware.rb
49
+
50
+ Style/HashSyntax:
51
+ Enabled: yes
52
+ Exclude:
53
+ - lib/rails_opentracer/span_helpers.rb
54
+
55
+ Style/MethodCallWithArgsParentheses:
56
+ Enabled: no
57
+
58
+ Style/MissingElse:
59
+ Enabled: no
60
+
61
+ Style/StringHashKeys:
62
+ Enabled: no
63
+
64
+
65
+
66
+ # Style/Copyright:
67
+ # Enabled: no
68
+ # Style/PercentLiteralDelimiters:
69
+ # Enabled: no
70
+
71
+ # Style/RedundantBegin:
72
+ # Exclude:
73
+ # - app/helpers/metrics_helper.rb
74
+
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in rails_opentracer.gemspec
6
6
  gemspec
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
3
 
4
4
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
5
+ t.libs << 'test'
6
+ t.libs << 'lib'
7
+ t.test_files = FileList['test/**/*_test.rb']
8
8
  end
9
9
 
10
- task :default => :test
10
+ task default: :test
data/bin/console CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "rails_opentracer"
3
+ require 'bundler/setup'
4
+ require 'rails_opentracer'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
10
+ # require 'pry'
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
@@ -1,13 +1,14 @@
1
1
  module ActiveRecord
2
2
  module RailsOpentracer
3
- DEFAULT_OPERATION_NAME = "sql.query".freeze
3
+ DEFAULT_OPERATION_NAME = 'sql.query'.freeze
4
4
 
5
5
  class << self
6
6
  def instrument(tracer: OpenTracing.global_tracer, active_span: nil)
7
7
  clear_subscribers
8
- @subscriber = ::ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
9
- ActiveRecord::RailsOpentracer.sql(tracer: tracer, active_span: active_span, args: args)
10
- end
8
+ @subscriber =
9
+ ::ActiveSupport::Notifications.subscribe('sql.active_record') do |*args|
10
+ ActiveRecord::RailsOpentracer.sql(tracer: tracer, active_span: active_span, args: args)
11
+ end
11
12
 
12
13
  self
13
14
  end
@@ -20,17 +21,20 @@ module ActiveRecord
20
21
 
21
22
  self
22
23
  end
23
- alias :clear_subscribers :disable
24
+ alias clear_subscribers disable
24
25
 
25
26
  def sql(tracer: OpenTracing.global_tracer, active_span: nil, args:)
26
27
  _, start, finish, _, payload = *args
27
- span = start_span(payload.fetch(:name),
28
- tracer: tracer,
29
- active_span: active_span,
30
- start_time: start,
31
- sql: payload.fetch(:sql),
32
- cached: payload.fetch(:cached, false),
33
- connection_id: payload.fetch(:connection_id))
28
+ span =
29
+ start_span(
30
+ payload.fetch(:name),
31
+ tracer: tracer,
32
+ active_span: active_span,
33
+ start_time: start,
34
+ sql: payload.fetch(:sql),
35
+ cached: payload.fetch(:cached, false),
36
+ connection_id: payload.fetch(:connection_id)
37
+ )
34
38
 
35
39
  if payload[:exception]
36
40
  ::RailsOpentracer::SpanHelpers.set_error(span, payload[:exception_object] || payload[:exception])
@@ -39,24 +43,26 @@ module ActiveRecord
39
43
  span.finish(end_time: finish)
40
44
  end
41
45
 
42
-
43
- def start_span(operation_name, tracer: OpenTracing.global_tracer, active_span: nil, start_time: Time.now, **fields)
46
+ def start_span(operation_name, tracer: OpenTracing.global_tracer, active_span: nil, start_time: Time.now.utc, **fields)
44
47
  connection_config = ::ActiveRecord::Base.connection_config
45
48
 
46
- span = tracer.start_span(operation_name || DEFAULT_OPERATION_NAME,
47
- child_of: active_span.respond_to?(:call) ? active_span.call : active_span,
48
- start_time: start_time,
49
- tags: {
50
- 'component' => 'ActiveRecord',
51
- 'span.kind' => 'client',
52
- 'db.user' => connection_config.fetch(:username, 'unknown'),
53
- 'db.instance' => connection_config.fetch(:database),
54
- 'db.vendor' => connection_config.fetch(:adapter),
55
- 'db.connection_id' => fields.fetch(:connection_id, 'unknown'),
56
- 'db.cached' => fields.fetch(:cached, false),
57
- 'db.statement' => fields.fetch(:sql),
58
- 'db.type' => 'sql'
59
- })
49
+ span =
50
+ tracer.start_span(
51
+ operation_name || DEFAULT_OPERATION_NAME,
52
+ child_of: active_span.respond_to?(:call) ? active_span.call : active_span,
53
+ start_time: start_time,
54
+ tags: {
55
+ 'component' => 'ActiveRecord',
56
+ 'span.kind' => 'client',
57
+ 'db.user' => connection_config.fetch(:username, 'unknown'),
58
+ 'db.instance' => connection_config.fetch(:database),
59
+ 'db.vendor' => connection_config.fetch(:adapter),
60
+ 'db.connection_id' => fields.fetch(:connection_id, 'unknown'),
61
+ 'db.cached' => fields.fetch(:cached, false),
62
+ 'db.statement' => fields.fetch(:sql),
63
+ 'db.type' => 'sql'
64
+ }
65
+ )
60
66
  span
61
67
  end
62
68
  end
@@ -31,7 +31,8 @@ module RailsOpentracer
31
31
  else
32
32
  OpenTracing.start_span(span_name, child_of: extracted_ctx)
33
33
  end
34
- $active_span = span # yuck
34
+ # yuck
35
+ $active_span = span
35
36
  rescue StandardError => e
36
37
  Rails.logger.error "TRACER_ERROR: #{error_message(e)}"
37
38
  return @app.call(env)
@@ -43,13 +44,13 @@ module RailsOpentracer
43
44
  carrier = {}
44
45
  OpenTracing.inject(span.context, OpenTracing::FORMAT_RACK, carrier)
45
46
  span.finish
46
- [status, headers , response]
47
+ [status, headers, response]
47
48
  rescue StandardError => e
48
49
  Rails.logger.error "TRACER_ERROR: #{error_message(e)}"
49
50
  [status, headers, response]
50
51
  end
51
52
  else
52
- if ZipkinConfig.opentracer_enabled?
53
+ if ZipkinConfig.opentracer_enabled?
53
54
  Rails.logger.error 'TRACER_ERROR: `ZIPKIN_SERVICE_URL` environment variable is not defined'
54
55
  end
55
56
  return @app.call(env)
@@ -1,3 +1,3 @@
1
1
  module RailsOpentracer
2
- VERSION = "0.1.38"
2
+ VERSION = '0.1.39'.freeze
3
3
  end
@@ -1,7 +1,7 @@
1
1
  module RailsOpentracer
2
2
  class ZipkinConfig
3
3
  def self.opentracer_enabled?
4
- ENV['RAILS_OPENTRACER_ENABLED'] == 'yes'
4
+ ENV['RAILS_OPENTRACER_ENABLED'] == 'yes'
5
5
  end
6
6
 
7
7
  def self.opentracer_enabled_and_zipkin_url_present?
@@ -14,6 +14,6 @@ module RailsOpentracer
14
14
  else
15
15
  ENV['ZIPKIN_SERVICE_URL']
16
16
  end
17
- end
17
+ end
18
18
  end
19
19
  end
@@ -9,9 +9,10 @@ require 'zipkin'
9
9
 
10
10
  module RailsOpentracer
11
11
  def get(url)
12
- connection = Faraday.new do |con|
13
- con.use Faraday::Adapter::NetHttp
14
- end
12
+ connection =
13
+ Faraday.new do |con|
14
+ con.use Faraday::Adapter::NetHttp
15
+ end
15
16
  if ZipkinConfig.opentracer_enabled_and_zipkin_url_present?
16
17
  carrier = {}
17
18
  OpenTracing.inject(@span.context, OpenTracing::FORMAT_RACK, carrier)
@@ -23,7 +24,7 @@ module RailsOpentracer
23
24
  end
24
25
 
25
26
  def with_span(name)
26
- if ZipkinConfig.opentracer_enabled_and_zipkin_url_present?
27
+ if ZipkinConfig.opentracer_enabled_and_zipkin_url_present?
27
28
  @span =
28
29
  if $active_span.present?
29
30
  OpenTracing.start_span(name, child_of: $active_span)
@@ -32,13 +33,14 @@ module RailsOpentracer
32
33
  end
33
34
  yield if block_given?
34
35
  @span.finish
35
- else
36
- yield if block_given?
36
+ elsif block_given?
37
+ yield
37
38
  end
38
39
  end
39
40
 
40
41
  private
42
+
41
43
  def denilize(hash)
42
- hash.each { |k, _v| hash[k] = '' if hash[k].nil? }
44
+ hash.each_key { |k, _v| hash[k] = '' if hash[k].nil? }
43
45
  end
44
46
  end
@@ -1,44 +1,35 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
1
+ lib = File.expand_path('../lib', __FILE__)
3
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "rails_opentracer/version"
3
+ require 'rails_opentracer/version'
5
4
 
6
5
  Gem::Specification.new do |spec|
7
- spec.name = "rails_opentracer"
6
+ spec.name = 'rails_opentracer'
8
7
  spec.version = RailsOpentracer::VERSION
9
- spec.authors = ["Nicholas Erasmus"]
10
- spec.email = ["nuclearnicdev@gmail.com"]
8
+ spec.authors = ['Nicholas Erasmus']
9
+ spec.email = ['nuclearnicdev@gmail.com']
11
10
 
12
- spec.summary = %q{Gem that auto-instruments application with OpenTracing}
11
+ spec.summary = %(Gem that auto-instruments application with OpenTracing)
13
12
  # spec.description = %q{TODO: Write a longer description or delete this line.}
14
- spec.homepage = "https://github.com/nuclearnic/rails_opentracer"
15
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/nuclearnic/rails_opentracer'
14
+ spec.license = 'MIT'
16
15
 
17
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
- # to allow pushing to a single host or delete this section to allow pushing to any host.
19
- # if spec.respond_to?(:metadata)
20
- # spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
21
- # else
22
- # raise "RubyGems 2.0 or newer is required to protect against " \
23
- # "public gem pushes."
24
- # end
25
-
26
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
- f.match(%r{^(test|spec|features)/})
28
- end
29
- spec.bindir = "exe"
16
+ spec.files =
17
+ `git ls-files -z`.split("\x0").reject do |f|
18
+ f.match(%r{^(test|spec|features)/})
19
+ end
20
+ spec.bindir = 'exe'
30
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
32
23
 
33
- spec.add_dependency "faraday", "~> 0.13.1"
34
- spec.add_dependency "opentracing", "~> 0.3.1"
35
- spec.add_dependency "zipkin", "~> 0.4.2"
24
+ spec.add_dependency 'faraday', '~> 0.13.1'
25
+ spec.add_dependency 'opentracing', '~> 0.3.1'
26
+ spec.add_dependency 'zipkin', '~> 0.4.2'
36
27
 
37
- spec.add_development_dependency "rails"
38
- spec.add_development_dependency "pry"
39
- spec.add_development_dependency "sqlite3"
28
+ spec.add_development_dependency 'bundler', '~> 1.15'
40
29
  spec.add_development_dependency 'combustion', '~> 0.7.0'
41
- spec.add_development_dependency "bundler", "~> 1.15"
42
- spec.add_development_dependency "rake", "~> 10.0"
43
- spec.add_development_dependency "minitest", "~> 5.0"
30
+ spec.add_development_dependency 'minitest', '~> 5.0'
31
+ spec.add_development_dependency 'pry'
32
+ spec.add_development_dependency 'rails'
33
+ spec.add_development_dependency 'rake', '~> 10.0'
34
+ spec.add_development_dependency 'sqlite3'
44
35
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_opentracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.38
4
+ version: 0.1.39
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nicholas Erasmus
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-02 00:00:00.000000000 Z
11
+ date: 2018-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -53,75 +53,75 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.4.2
55
55
  - !ruby/object:Gem::Dependency
56
- name: rails
56
+ name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '1.15'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '1.15'
69
69
  - !ruby/object:Gem::Dependency
70
- name: pry
70
+ name: combustion
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 0.7.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 0.7.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: sqlite3
84
+ name: minitest
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '0'
89
+ version: '5.0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '0'
96
+ version: '5.0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: combustion
98
+ name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 0.7.0
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 0.7.0
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: bundler
112
+ name: rails
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - "~>"
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: '1.15'
117
+ version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - "~>"
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: '1.15'
124
+ version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rake
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -137,19 +137,19 @@ dependencies:
137
137
  - !ruby/object:Gem::Version
138
138
  version: '10.0'
139
139
  - !ruby/object:Gem::Dependency
140
- name: minitest
140
+ name: sqlite3
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: '5.0'
145
+ version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '5.0'
152
+ version: '0'
153
153
  description:
154
154
  email:
155
155
  - nuclearnicdev@gmail.com
@@ -158,6 +158,7 @@ extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
160
  - ".gitignore"
161
+ - ".rubocop.yml"
161
162
  - ".travis.yml"
162
163
  - CODE_OF_CONDUCT.md
163
164
  - Gemfile
@@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
193
194
  version: '0'
194
195
  requirements: []
195
196
  rubyforge_project:
196
- rubygems_version: 2.4.8
197
+ rubygems_version: 2.6.14
197
198
  signing_key:
198
199
  specification_version: 4
199
200
  summary: Gem that auto-instruments application with OpenTracing