opentracing-instrumentation 0.1.7 → 0.1.8

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: 21c6dd0e5e3405a61c7f1f9dc35b96f2816b22f2aefbc1d3e8a0af7e6649a9c7
4
- data.tar.gz: 4edc2ce12c3f2fbe4888bb3f11140378662f0997947ede005e7d7e2182b490f6
3
+ metadata.gz: b58db3616510f2c097cf2586f113a23c28c0ca8232c828f3577f64e09aecdcce
4
+ data.tar.gz: 3a32e28eae0e9d698ac5f229453d981ac4ed01c3fc78533c89090615759030fc
5
5
  SHA512:
6
- metadata.gz: 8d1cde83839d1dc7f8f4147bcfb0a1f09f1e0face18bad0aea6c72ecd2eafa5222beb32628c74944f90c2d3a70336e4c28949517d899515f9bc49e08887213bc
7
- data.tar.gz: 3f085c1e904b497eeea53c9da4ee10cd00527731d224dba8166b2c63df5869710d9120dd9568303153bd0b6fc8421cad61eef2d00f18aa1f9aa889f23e3d5c82
6
+ metadata.gz: e46ac60a7008279377c14229b7dc7e61cdd14afb63f340e45de25005f1c5259a122c90d35c7493ef5daed703e113dcdbba45ec1604bcb9129999904df7258d6f
7
+ data.tar.gz: 442f72513f70e1323ed0a04b1a0e1c35e6d903593aadc11a9997b4da1bd395aedf9378065ce102ba703aa9cfdf8ece29a8ec13bf5703849367543a2ebdf5773b
@@ -1 +1 @@
1
- 0.1.7
1
+ 0.1.8
@@ -18,7 +18,7 @@ GIT
18
18
  PATH
19
19
  remote: .
20
20
  specs:
21
- opentracing-instrumentation (0.1.7)
21
+ opentracing-instrumentation (0.1.8)
22
22
  json
23
23
  opentracing (~> 0.5.0)
24
24
 
@@ -41,7 +41,7 @@ GEM
41
41
  coderay (1.1.2)
42
42
  concurrent-ruby (1.1.6)
43
43
  diff-lcs (1.3)
44
- faraday (0.9.2)
44
+ faraday (1.0.1)
45
45
  multipart-post (>= 1.2, < 3)
46
46
  hutch (0.26.0)
47
47
  activesupport (>= 4.2, < 6)
@@ -68,7 +68,7 @@ GEM
68
68
  pry (~> 0.10)
69
69
  rack (2.2.2)
70
70
  rainbow (3.0.0)
71
- rake (10.5.0)
71
+ rake (13.0.1)
72
72
  redis (3.3.5)
73
73
  rexml (3.2.4)
74
74
  rspec (3.9.0)
@@ -105,15 +105,16 @@ PLATFORMS
105
105
  ruby
106
106
 
107
107
  DEPENDENCIES
108
+ activesupport (~> 5.2)
108
109
  bson (~> 4.0)
109
110
  bundler (= 2.1.4)
110
111
  bunny (~> 2.0)
111
- faraday (~> 0.9.2)
112
+ faraday (~> 1.0.1)
112
113
  hutch (~> 0.26.0)
113
114
  opentracing-instrumentation!
114
115
  pry-byebug (~> 3.8)
115
116
  rack (~> 2.2.2)
116
- rake (~> 10.0)
117
+ rake (~> 13.0)
117
118
  redis (~> 3.3.5)
118
119
  rspec (~> 3.0)
119
120
  rubocop (~> 0.80.0)
data/README.md CHANGED
@@ -1,38 +1,97 @@
1
1
  # Opentracing::Instrumentation
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/opentracing/instrumentation`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ This gem provides instrumentation for some popular gems. Its gem not use
4
+ monkey patching, instrumentation provided only as middleware or wrappers.
6
5
 
7
6
  ## Installation
8
7
 
9
8
  Add this line to your application's Gemfile:
10
9
 
11
10
  ```ruby
12
- gem 'opentracing-instrumentation'
11
+ gem 'opentracing-instrumentation', require: 'opentracing/instrumentation'
13
12
  ```
14
13
 
15
14
  And then execute:
16
15
 
17
- $ bundle
16
+ ```bash
17
+ bundle
18
+ ```
18
19
 
19
20
  Or install it yourself as:
20
21
 
21
- $ gem install opentracing-instrumentation
22
+ ```bash
23
+ gem install opentracing-instrumentation
24
+ ```
22
25
 
23
26
  ## Usage
24
27
 
25
- TODO: Write usage instructions here
28
+ [Documentation](https://rubydoc.info/gems/opentracing-instrumentation/)
29
+
30
+ ### Gems
31
+
32
+ #### [bunny](https://github.com/ruby-amqp/bunny)
33
+
34
+ Documentation [OpenTracing::Instrumentation::Bunny](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Bunny)
35
+
36
+ Tested versions: `2.14.3`
37
+
38
+ #### [faraday](https://github.com/lostisland/faraday)
39
+
40
+ Documentation: [OpenTracing::Instrumentation::Faraday](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Faraday)
41
+
42
+ Tested versions: `0.9.2`, `1.0.1`
43
+
44
+ #### [hutch](https://github.com/gocardless/hutch)
45
+
46
+ Documentation: [OpenTracing::Instrumentation::Hutch](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Hutch)
47
+
48
+ Tested versions: `0.21`, `0.26`
49
+
50
+ #### [mongo](https://github.com/mongodb/mongo-ruby-driver)
51
+
52
+ Documentation: [OpenTracing::Instrumentation::Mongo](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Mongo)
53
+
54
+ Tested versions: `2.8`
55
+
56
+ #### [rack](https://github.com/rack/rack)
57
+
58
+ Documentation: [OpenTracing::Instrumentation::Rack](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Rack)
59
+
60
+ Tested versions: `2.0`, `2.2`
61
+
62
+ #### [redis](https://github.com/redis/redis-rb)
63
+
64
+ Documentation: [OpenTracing::Instrumentation::Redis](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Redis)
65
+
66
+ Tested versions: `3.3.5`
67
+
68
+ #### [sidekiq](https://github.com/mperham/sidekiq)
69
+
70
+ Documentation: [OpenTracing::Instrumentation::Sidekiq](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Sidekiq)
71
+
72
+ Tested versions `4.2`
73
+
74
+ #### [sinatra](https://github.com/sinatra/sinatra)
75
+
76
+ Documentation: [OpenTracing::Instrumentation::Sinatra](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Sinatra)
77
+
78
+ Tested version: `2.0.8`
79
+
80
+ #### [thrift](https://github.com/apache/thrift/tree/master/lib/rb)
81
+
82
+ Documentation: [OpenTracing::Instrumentation::Thrift](https://rubydoc.info/gems/opentracing-instrumentation/OpenTracing/Instrumentation/Thrift)
83
+
84
+ Tested versions: `0.11.0`
26
85
 
27
86
  ## Development
28
87
 
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
88
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake` to run the tests and lints. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
89
 
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
90
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `GEM_VERSION`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
91
 
33
92
  ## Contributing
34
93
 
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/opentracing-instrumentation.
94
+ Bug reports and pull requests are welcome on [GitLab](https://gitlab.com/c0va23/opentracing-instrumentation).
36
95
 
37
96
  ## License
38
97
 
@@ -7,19 +7,31 @@ module OpenTracing
7
7
  # popular Ruby gems.
8
8
  #
9
9
  # All instrumentations modules is lazy loaded (via autoload).
10
+ #
11
+ # {file:README.md}
12
+ #
13
+ # @see Bunny
14
+ # @see Faraday
15
+ # @see Hutch
16
+ # @see Mongo
17
+ # @see Rack
18
+ # @see Redis
19
+ # @see Sidekiq
20
+ # @see Sinatra
21
+ # @see Thrift
10
22
  module Instrumentation
11
23
  class Error < StandardError; end
12
24
 
13
- autoload :ObjectWrapper, 'opentracing/instrumentation/object_wrapper'
25
+ autoload :Bunny, 'opentracing/instrumentation/bunny'
14
26
  autoload :Common, 'opentracing/instrumentation/common'
15
- autoload :Rack, 'opentracing/instrumentation/rack'
16
- autoload :Mongo, 'opentracing/instrumentation/mongo'
17
27
  autoload :Faraday, 'opentracing/instrumentation/faraday'
18
- autoload :Sinatra, 'opentracing/instrumentation/sinatra'
19
- autoload :Thrift, 'opentracing/instrumentation/thrift'
28
+ autoload :Hutch, 'opentracing/instrumentation/hutch'
29
+ autoload :Mongo, 'opentracing/instrumentation/mongo'
30
+ autoload :ObjectWrapper, 'opentracing/instrumentation/object_wrapper'
31
+ autoload :Rack, 'opentracing/instrumentation/rack'
20
32
  autoload :Redis, 'opentracing/instrumentation/redis'
21
33
  autoload :Sidekiq, 'opentracing/instrumentation/sidekiq'
22
- autoload :Hutch, 'opentracing/instrumentation/hutch'
23
- autoload :Bunny, 'opentracing/instrumentation/bunny'
34
+ autoload :Sinatra, 'opentracing/instrumentation/sinatra'
35
+ autoload :Thrift, 'opentracing/instrumentation/thrift'
24
36
  end
25
37
  end
@@ -42,7 +42,7 @@ module OpenTracing
42
42
 
43
43
  def filter_part(routing_key_part)
44
44
  replace_regexp_map.each do |placeholder, regexp|
45
- return placeholder if regexp =~ routing_key_part
45
+ return placeholder if regexp.match?(routing_key_part)
46
46
  end
47
47
  routing_key_part
48
48
  end
@@ -1,15 +1,30 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'thrift'
4
+
3
5
  module OpenTracing
4
6
  module Instrumentation
5
7
  # OpenTracing instrumentation for Thrift client and server
6
8
  module Thrift
7
- autoload :Config,
8
- 'opentracing/instrumentation/thrift/config'
9
+ module_path = 'opentracing/instrumentation/thrift'
10
+
11
+ MESSAGE_TYPES = {
12
+ ::Thrift::MessageTypes::CALL => 'CALL',
13
+ ::Thrift::MessageTypes::REPLY => 'REPLY',
14
+ ::Thrift::MessageTypes::EXCEPTION => 'EXCEPTION',
15
+ ::Thrift::MessageTypes::ONEWAY => 'ONEWAY',
16
+ }.freeze
17
+
9
18
  autoload :TracedProtocol,
10
- 'opentracing/instrumentation/thrift/traced_protocol'
19
+ module_path + '/traced_protocol'
20
+ autoload :TracedProtocolConfig,
21
+ module_path + '/traced_protocol_config'
11
22
  autoload :TracedProtocolFactory,
12
- 'opentracing/instrumentation/thrift/traced_protocol_factory'
23
+ module_path + '/traced_protocol_factory'
24
+ autoload :TracedProtocolOperationNameBuilder,
25
+ module_path + '/traced_protocol_operation_name_builder'
26
+ autoload :TracedProtocolTagsBuilder,
27
+ module_path + '/traced_protocol_tags_builder'
13
28
  end
14
29
  end
15
30
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'thrift'
4
-
5
3
  module OpenTracing
6
4
  module Instrumentation
7
5
  module Thrift
@@ -28,116 +26,114 @@ module OpenTracing
28
26
 
29
27
  include ::Thrift::ProtocolDecorator
30
28
 
31
- attr_reader :protocol
29
+ WRITE_DIRECTION = 'write'
30
+ READ_DIRECTION = 'read'
32
31
 
33
- def initialize(protocol, config: Config.new)
34
- @protocol = protocol
35
- @config = config
32
+ def initialize(protocol, config: TracedProtocolConfig.new)
33
+ super(protocol)
34
+ @config = config.dup
35
+ yield @config if block_given?
36
+ @static_tags = config.tags_builder.build_static_tags(protocol)
36
37
  end
37
38
 
38
39
  def write_message_begin(name, type, seqid)
39
- request_tags = build_request_tags(name, type)
40
- self.write_scope = tracer.start_active_span(
41
- write_operation_name,
42
- tags: request_tags,
43
- )
44
- handler_error(write_scope.span, type)
40
+ self.write_scope = \
41
+ safe_start_active_span(WRITE_DIRECTION, name, type)
45
42
 
43
+ # Call protocol instaed super, beacaus ProtocolDecorator do not
44
+ # pass arguments to protocol.write_message_begin
46
45
  protocol.write_message_begin(name, type, seqid)
46
+ rescue StandardError => e
47
+ write_error(write_scope&.span, e)
48
+ safe_close_span(write_scope)
49
+ raise e
47
50
  end
48
51
 
49
52
  def write_message_end
50
53
  super
51
- write_scope.close
54
+ ensure
55
+ safe_close_span(write_scope)
52
56
  end
53
57
 
54
58
  def read_message_begin
55
- self.read_scope = tracer.start_active_span(read_operation_name)
59
+ start_time = Time.now.utc
56
60
 
57
61
  name, type, rseqid = super
58
62
 
59
- tags = build_request_tags(name, type)
60
- write_span_tags(read_scope.span, tags)
61
- handler_error(read_scope.span, type)
63
+ self.read_scope = \
64
+ safe_start_active_span(READ_DIRECTION, name, type,
65
+ start_time: start_time)
62
66
 
63
67
  [name, type, rseqid]
64
68
  end
65
69
 
66
70
  def read_message_end
67
71
  super
68
- read_scope.close
72
+ ensure
73
+ safe_close_span(read_scope)
69
74
  end
70
75
 
71
76
  private
72
77
 
78
+ attr_reader :static_tags
79
+ attr_reader :protocol
80
+
73
81
  def_delegators :@config,
74
82
  :tracer,
75
- :write_operation_name,
76
- :read_operation_name
83
+ :tags_builder,
84
+ :operation_name_builder,
85
+ :error_writer,
86
+ :logger
77
87
 
78
88
  attr_accessor :write_scope,
79
89
  :read_scope
80
90
 
81
- METHOD_PART = 'method'
82
- SERVICE_NAME_PART = 'service_name'
83
- NAME_PATTER = /((?<service_name>\w+):)?(?<method>\w+)/.freeze
84
- MESSAGE_TYPES = {
85
- ::Thrift::MessageTypes::CALL => 'CALL',
86
- ::Thrift::MessageTypes::REPLY => 'REPLY',
87
- ::Thrift::MessageTypes::EXCEPTION => 'EXCEPTION',
88
- ::Thrift::MessageTypes::ONEWAY => 'ONEWAY',
89
- }.freeze
90
-
91
- def parse_name(name)
92
- name_matches = NAME_PATTER.match(name)
93
- method = name_matches[METHOD_PART]
94
- service_name = name_matches[SERVICE_NAME_PART]
95
- [service_name, method]
96
- end
97
-
98
- def write_span_tags(span, tags)
99
- tags.each do |tag, value|
100
- span.set_tag(tag, value)
101
- end
91
+ def safe_start_active_span(
92
+ direction,
93
+ name,
94
+ type,
95
+ start_time: Time.now.utc
96
+ )
97
+ operation_name = build_operation_name(direction, name, type)
98
+ request_tags = build_tags(name, type)
99
+
100
+ tracer.start_active_span(
101
+ operation_name,
102
+ tags: request_tags,
103
+ start_time: start_time,
104
+ )
105
+ rescue StandardError => e
106
+ logger&.error(e)
102
107
  end
103
108
 
104
- def build_request_tags(name, type)
105
- service_name, method = parse_name(name)
106
- {
107
- 'thrift.method' => method,
108
- 'thrift.service_name' => service_name,
109
- 'thrift.type' => MESSAGE_TYPES[type],
110
- 'thrift.multiplexed' => !service_name.nil?,
111
- 'thrift.protocol' => protocol_name,
112
- 'thrift.transport' => transport_name,
113
- }.compact
114
- end
109
+ def safe_close_span(scope)
110
+ return if scope.nil?
115
111
 
116
- def protocol_name
117
- protocol.class.to_s
112
+ scope.close
113
+ rescue StandardError => e
114
+ logger&.error(e)
118
115
  end
119
116
 
120
- def build_transport_name(transport)
121
- inner_transport = transport.instance_variable_get(:@transport)
117
+ def write_error(span, exception)
118
+ return if span.nil?
122
119
 
123
- if inner_transport
124
- inner_transport_name = build_transport_name(inner_transport)
125
- "#{transport.class}(#{inner_transport_name})"
126
- else
127
- transport.class.to_s
128
- end
120
+ error_writer.write_error(span, exception)
121
+ rescue StandardError => e
122
+ logger&.error(e)
129
123
  end
130
124
 
131
- def transport_name
132
- return @transport_name if defined?(@transport_name)
133
-
134
- @transport_name = build_transport_name(@protocol.trans)
125
+ def build_operation_name(direction, name, type)
126
+ operation_name_builder.build_operation_name(
127
+ direction,
128
+ name,
129
+ type,
130
+ )
135
131
  end
136
132
 
137
- def handler_error(span, type)
138
- return if type != ::Thrift::MessageTypes::EXCEPTION
139
-
140
- span.set_tag('error', true)
133
+ def build_tags(name, type)
134
+ static_tags
135
+ .merge(tags_builder.build_message_tags(name, type))
136
+ .compact
141
137
  end
142
138
  end
143
139
  end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OpenTracing
4
+ module Instrumentation
5
+ module Thrift
6
+ # Config for TracedProtocol
7
+ class TracedProtocolConfig
8
+ attr_accessor :tracer,
9
+ :tags_builder,
10
+ :operation_name_builder,
11
+ :error_writer,
12
+ :logger
13
+
14
+ def initialize(
15
+ tracer: OpenTracing.global_tracer,
16
+ tags_builder: TracedProtocolTagsBuilder.new,
17
+ operation_name_builder: TracedProtocolOperationNameBuilder.new,
18
+ error_writer: Common::ErrorWriter.new,
19
+ logger: nil
20
+ )
21
+ @tracer = tracer
22
+ @tags_builder = tags_builder
23
+ @operation_name_builder = operation_name_builder
24
+ @error_writer = error_writer
25
+ @logger = logger
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -28,7 +28,7 @@ module OpenTracing
28
28
  # )
29
29
  # run thrift_app
30
30
  class TracedProtocolFactory < ::Thrift::BaseProtocolFactory
31
- def initialize(protocol_factory, config: Config.new)
31
+ def initialize(protocol_factory, config: TracedProtocolConfig.new)
32
32
  @protocol_factory = protocol_factory
33
33
  @config = config
34
34
  end
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thrift'
4
+
5
+ module OpenTracing
6
+ module Instrumentation
7
+ module Thrift
8
+ # Build operation name for TracedProtocol
9
+ class TracedProtocolOperationNameBuilder
10
+ DEFAULT_OPERATION_NAME_PATTERN = \
11
+ 'thrift(direction=%<direction>s, name=%<name>s, type=%<type>s)'
12
+
13
+ attr_reader :operation_name_pattern
14
+
15
+ # @param operation_name_pattern [String]
16
+ def initialize(
17
+ operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN
18
+ )
19
+ @operation_name_pattern = operation_name_pattern
20
+ end
21
+
22
+ # @param direction [String] should be 'write' or 'read'
23
+ # @param name [String] method name. Example: 'Service:method'
24
+ # @param type [Integer] message type, See ::Thrift::MessageTypes
25
+ # @return [String] formated operation name
26
+ def build_operation_name(direction, name, type)
27
+ format_args = build_format_args(direction, name, type)
28
+ format(operation_name_pattern, **format_args)
29
+ end
30
+
31
+ private
32
+
33
+ def build_format_args(direction, name, type)
34
+ {
35
+ direction: direction,
36
+ name: name,
37
+ type: MESSAGE_TYPES[type],
38
+ }
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'thrift'
4
+
5
+ module OpenTracing
6
+ module Instrumentation
7
+ module Thrift
8
+ # TagsBuilder for TracedProtocol
9
+ class TracedProtocolTagsBuilder
10
+ def build_message_tags(name, type)
11
+ service_name, method = parse_message_name(name)
12
+ {
13
+ 'thrift.method' => method,
14
+ 'thrift.service_name' => service_name,
15
+ 'thrift.multiplexed' => !service_name.nil?,
16
+ 'thrift.type' => MESSAGE_TYPES[type],
17
+ }.merge(error_tags(type))
18
+ end
19
+
20
+ def build_static_tags(protocol)
21
+ transport = protocol.trans
22
+ {
23
+ 'thrift.protocol' => build_protocol_name(protocol),
24
+ 'thrift.transport' => build_transport_name(transport),
25
+ }
26
+ end
27
+
28
+ private
29
+
30
+ NAME_PATTER = /((?<service_name>\w+):)?(?<method>\w+)/.freeze
31
+ SERVICE_NAME_PART = 'service_name'
32
+ METHOD_PART = 'method'
33
+
34
+ def parse_message_name(name)
35
+ name_matches = NAME_PATTER.match(name)
36
+ method = name_matches[METHOD_PART]
37
+ service_name = name_matches[SERVICE_NAME_PART]
38
+ [service_name, method]
39
+ end
40
+
41
+ def build_protocol_name(protocol)
42
+ protocol.class.to_s
43
+ end
44
+
45
+ def build_transport_name(transport)
46
+ inner_transport = transport.instance_variable_get(:@transport)
47
+
48
+ if inner_transport
49
+ inner_transport_name = build_transport_name(inner_transport)
50
+ "#{transport.class}(#{inner_transport_name})"
51
+ else
52
+ transport.class.to_s
53
+ end
54
+ end
55
+
56
+ def error_tags(type)
57
+ return {} if type != ::Thrift::MessageTypes::EXCEPTION
58
+
59
+ {
60
+ 'error' => true,
61
+ }
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
@@ -27,13 +27,14 @@ Gem::Specification.new do |spec|
27
27
  spec.add_runtime_dependency 'json'
28
28
  spec.add_runtime_dependency 'opentracing', '~> 0.5.0'
29
29
 
30
+ spec.add_development_dependency 'activesupport', '~> 5.2'
30
31
  spec.add_development_dependency 'bson', '~> 4.0'
31
32
  spec.add_development_dependency 'bundler', File.read('.BUNDLER_VERSION').strip
32
33
  spec.add_development_dependency 'bunny', '~> 2.0'
33
- spec.add_development_dependency 'faraday', '~> 0.9.2'
34
+ spec.add_development_dependency 'faraday', '~> 1.0.1'
34
35
  spec.add_development_dependency 'hutch', '~> 0.26.0'
35
36
  spec.add_development_dependency 'rack', '~> 2.2.2'
36
- spec.add_development_dependency 'rake', '~> 10.0'
37
+ spec.add_development_dependency 'rake', '~> 13.0'
37
38
  spec.add_development_dependency 'redis', '~> 3.3.5'
38
39
  spec.add_development_dependency 'rspec', '~> 3.0'
39
40
  spec.add_development_dependency 'rubocop', '~> 0.80.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentracing-instrumentation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fedorenko Dmitrij
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-30 00:00:00.000000000 Z
11
+ date: 2020-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: 0.5.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.2'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.2'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bson
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +100,14 @@ dependencies:
86
100
  requirements:
87
101
  - - "~>"
88
102
  - !ruby/object:Gem::Version
89
- version: 0.9.2
103
+ version: 1.0.1
90
104
  type: :development
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
- version: 0.9.2
110
+ version: 1.0.1
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: hutch
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -128,14 +142,14 @@ dependencies:
128
142
  requirements:
129
143
  - - "~>"
130
144
  - !ruby/object:Gem::Version
131
- version: '10.0'
145
+ version: '13.0'
132
146
  type: :development
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
150
  - - "~>"
137
151
  - !ruby/object:Gem::Version
138
- version: '10.0'
152
+ version: '13.0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: redis
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -276,9 +290,11 @@ files:
276
290
  - lib/opentracing/instrumentation/sinatra.rb
277
291
  - lib/opentracing/instrumentation/sinatra/trace_middleware.rb
278
292
  - lib/opentracing/instrumentation/thrift.rb
279
- - lib/opentracing/instrumentation/thrift/config.rb
280
293
  - lib/opentracing/instrumentation/thrift/traced_protocol.rb
294
+ - lib/opentracing/instrumentation/thrift/traced_protocol_config.rb
281
295
  - lib/opentracing/instrumentation/thrift/traced_protocol_factory.rb
296
+ - lib/opentracing/instrumentation/thrift/traced_protocol_operation_name_builder.rb
297
+ - lib/opentracing/instrumentation/thrift/traced_protocol_tags_builder.rb
282
298
  - lib/opentracing/instrumentation/version.rb
283
299
  - opentracing-instrumentation.gemspec
284
300
  homepage: https://gitlab.com/c0va23/ruby-opentracing-instrumentation.
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module OpenTracing
4
- module Instrumentation
5
- module Thrift
6
- # Config for TracedProtocol
7
- class Config
8
- attr_accessor :tracer,
9
- :write_operation_name,
10
- :read_operation_name
11
-
12
- def initialize(
13
- tracer: OpenTracing.global_tracer,
14
- write_operation_name: 'thrift_write',
15
- read_operation_name: 'thrift_read'
16
- )
17
- @tracer = tracer
18
- @write_operation_name = write_operation_name
19
- @read_operation_name = read_operation_name
20
- end
21
- end
22
- end
23
- end
24
- end