ddtrace 0.11.4 → 0.12.0.beta1

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.
@@ -22,13 +22,8 @@ module Datadog
22
22
  # SignalException::Interrupt would still bubble up.
23
23
  rescue Exception => e
24
24
  tracer = Datadog.configuration[:rails][:tracer]
25
- span = tracer.active_span
26
- unless span.nil?
27
- # Only set error if it's supposed to be flagged as such
28
- # e.g. we don't want to flag 404s.
29
- # You can add custom errors via `config.action_dispatch.rescue_responses`
30
- span.set_error(e) if Utils.exception_is_error?(e)
31
- end
25
+ span = tracer.active_span()
26
+ span.set_error(e) unless span.nil?
32
27
  raise e
33
28
  end
34
29
  end
@@ -36,6 +36,11 @@ module Datadog
36
36
 
37
37
  defined?(::Rails::VERSION) && ::Rails::VERSION::MAJOR.to_i >= 3
38
38
  end
39
+
40
+ def active_record_instantiation_tracing_supported?
41
+ Gem.loaded_specs['activerecord'] \
42
+ && Gem.loaded_specs['activerecord'].version >= Gem::Version.new('4.2')
43
+ end
39
44
  end
40
45
  end
41
46
  end
@@ -6,10 +6,7 @@ module Datadog
6
6
  # Railtie class initializes
7
7
  class Railtie < Rails::Railtie
8
8
  config.app_middleware.insert_before(0, Datadog::Contrib::Rack::TraceMiddleware)
9
- # Insert right after Rails exception handling middleware, because if it's before,
10
- # it catches and swallows the error. If it's too far after, custom middleware can find itself
11
- # between, and raise exceptions that don't end up getting tagged on the request properly (e.g lost stack trace.)
12
- config.app_middleware.insert_after(ActionDispatch::ShowExceptions, Datadog::Contrib::Rails::ExceptionMiddleware)
9
+ config.app_middleware.use(Datadog::Contrib::Rails::ExceptionMiddleware)
13
10
 
14
11
  config.after_initialize do
15
12
  Datadog::Contrib::Rails::Framework.setup
@@ -47,77 +47,32 @@ module Datadog
47
47
  end
48
48
 
49
49
  def self.adapter_name
50
- connection_config[:adapter_name]
50
+ normalize_vendor(connection_config[:adapter])
51
51
  end
52
52
 
53
53
  def self.database_name
54
- connection_config[:database_name]
54
+ connection_config[:database]
55
55
  end
56
56
 
57
57
  def self.adapter_host
58
- connection_config[:adapter_host]
58
+ connection_config[:host]
59
59
  end
60
60
 
61
61
  def self.adapter_port
62
- connection_config[:adapter_port]
62
+ connection_config[:port]
63
63
  end
64
64
 
65
- def self.connection_config(object_id = nil)
66
- config = object_id.nil? ? default_connection_config : connection_config_by_id(object_id)
67
- {
68
- adapter_name: normalize_vendor(config[:adapter]),
69
- adapter_host: config[:host],
70
- adapter_port: config[:port],
71
- database_name: config[:database]
72
- }
73
- end
74
-
75
- # Attempt to retrieve the connection from an object ID.
76
- def self.connection_by_id(object_id)
77
- return nil if object_id.nil?
78
- ObjectSpace._id2ref(object_id)
79
- rescue StandardError
80
- nil
81
- end
82
-
83
- # Attempt to retrieve the connection config from an object ID.
84
- # Typical of ActiveSupport::Notifications `sql.active_record`
85
- def self.connection_config_by_id(object_id)
86
- connection = connection_by_id(object_id)
87
- return {} if connection.nil?
88
-
89
- if connection.instance_variable_defined?(:@config)
90
- connection.instance_variable_get(:@config)
91
- else
92
- {}
65
+ def self.connection_config
66
+ @connection_config ||= begin
67
+ if defined?(::ActiveRecord::Base.connection_config)
68
+ ::ActiveRecord::Base.connection_config
69
+ else
70
+ ::ActiveRecord::Base.connection_pool.spec.config
71
+ end
93
72
  end
94
73
  end
95
74
 
96
- def self.default_connection_config
97
- return @default_connection_config unless @default_connection_config.nil?
98
- current_connection_name = if ::ActiveRecord::Base.respond_to?(:connection_specification_name)
99
- ::ActiveRecord::Base.connection_specification_name
100
- else
101
- ::ActiveRecord::Base
102
- end
103
-
104
- connection_pool = ::ActiveRecord::Base.connection_handler.retrieve_connection_pool(current_connection_name)
105
- connection_pool.nil? ? {} : (@default_connection_config = connection_pool.spec.config)
106
- rescue StandardError
107
- {}
108
- end
109
-
110
- def self.exception_is_error?(exception)
111
- if defined?(::ActionDispatch::ExceptionWrapper)
112
- # Gets the equivalent status code for the exception (not all are 5XX)
113
- # You can add custom errors via `config.action_dispatch.rescue_responses`
114
- status = ::ActionDispatch::ExceptionWrapper.status_code_for_exception(exception.class.name)
115
- # Only 5XX exceptions are actually errors (e.g. don't flag 404s)
116
- status.to_s.starts_with?('5')
117
- else
118
- true
119
- end
120
- end
75
+ private_class_method :connection_config
121
76
  end
122
77
  end
123
78
  end
@@ -1,40 +1,18 @@
1
1
  module Datadog
2
2
  # Defines some useful patching methods for integrations
3
3
  module Patcher
4
- def self.included(base)
5
- base.send(:extend, CommonMethods)
6
- base.send(:include, CommonMethods)
7
- end
4
+ module_function
8
5
 
9
- # Defines some common methods for patching, that can be used
10
- # at the instance, class, or module level.
11
- module CommonMethods
12
- def without_warnings
13
- # This is typically used when monkey patching functions such as
14
- # intialize, which Ruby advices you not to. Use cautiously.
15
- v = $VERBOSE
16
- $VERBOSE = nil
17
- begin
18
- yield
19
- ensure
20
- $VERBOSE = v
21
- end
22
- end
23
-
24
- def do_once(key = nil)
25
- # If already done, don't do again
26
- @done_once ||= {}
27
- return @done_once[key] if @done_once.key?(key)
28
-
29
- # Otherwise 'do'
30
- yield.tap do
31
- # Then add the key so we don't do again.
32
- @done_once[key] = true
33
- end
6
+ def without_warnings
7
+ # This is typically used when monkey patching functions such as
8
+ # intialize, which Ruby advices you not to. Use cautiously.
9
+ v = $VERBOSE
10
+ $VERBOSE = nil
11
+ begin
12
+ yield
13
+ ensure
14
+ $VERBOSE = v
34
15
  end
35
16
  end
36
-
37
- # Extend the common methods so they're available as a module function.
38
- extend(CommonMethods)
39
17
  end
40
18
  end
@@ -8,7 +8,6 @@ module Datadog
8
8
  # Transport class that handles the spans delivery to the
9
9
  # local trace-agent. The class wraps a Net:HTTP instance
10
10
  # so that the Transport is thread-safe.
11
- # rubocop:disable Metrics/ClassLength
12
11
  class HTTPTransport
13
12
  attr_accessor :hostname, :port
14
13
  attr_reader :traces_endpoint, :services_endpoint
@@ -22,21 +21,18 @@ module Datadog
22
21
 
23
22
  API = {
24
23
  V4 = 'v0.4'.freeze => {
25
- version: V4,
26
24
  traces_endpoint: '/v0.4/traces'.freeze,
27
25
  services_endpoint: '/v0.4/services'.freeze,
28
26
  encoder: Encoding::MsgpackEncoder,
29
27
  fallback: 'v0.3'.freeze
30
28
  }.freeze,
31
29
  V3 = 'v0.3'.freeze => {
32
- version: V3,
33
30
  traces_endpoint: '/v0.3/traces'.freeze,
34
31
  services_endpoint: '/v0.3/services'.freeze,
35
32
  encoder: Encoding::MsgpackEncoder,
36
33
  fallback: 'v0.2'.freeze
37
34
  }.freeze,
38
35
  V2 = 'v0.2'.freeze => {
39
- version: V2,
40
36
  traces_endpoint: '/v0.2/traces'.freeze,
41
37
  services_endpoint: '/v0.2/services'.freeze,
42
38
  encoder: Encoding::JSONEncoder
@@ -75,45 +71,34 @@ module Datadog
75
71
  case endpoint
76
72
  when :services
77
73
  payload = @encoder.encode_services(data)
78
- status_code = post(@api[:services_endpoint], payload) do |response|
79
- process_callback(:services, response)
80
- end
74
+ status_code = post(@api[:services_endpoint], payload)
81
75
  when :traces
82
76
  count = data.length
83
77
  payload = @encoder.encode_traces(data)
84
- status_code = post(@api[:traces_endpoint], payload, count) do |response|
85
- process_callback(:traces, response)
86
- end
78
+ status_code = post(@api[:traces_endpoint], payload, count)
87
79
  else
88
80
  Datadog::Tracer.log.error("Unsupported endpoint: #{endpoint}")
89
81
  return nil
90
82
  end
91
83
 
92
- if downgrade?(status_code)
93
- downgrade!
94
- send(endpoint, data)
95
- else
96
- status_code
97
- end
84
+ downgrade! && send(endpoint, data) if downgrade?(status_code)
85
+
86
+ status_code
98
87
  end
99
88
 
100
89
  # send data to the trace-agent; the method is thread-safe
101
90
  def post(url, data, count = nil)
102
- begin
103
- Datadog::Tracer.log.debug("Sending data from process: #{Process.pid}")
104
- headers = count.nil? ? {} : { TRACE_COUNT_HEADER => count.to_s }
105
- headers = headers.merge(@headers)
106
- request = Net::HTTP::Post.new(url, headers)
107
- request.body = data
108
-
109
- response = Net::HTTP.start(@hostname, @port, read_timeout: TIMEOUT) { |http| http.request(request) }
110
- handle_response(response)
111
- rescue StandardError => e
112
- Datadog::Tracer.log.error(e.message)
113
- 500
114
- end.tap do
115
- yield(response) if block_given?
116
- end
91
+ Datadog::Tracer.log.debug("Sending data from process: #{Process.pid}")
92
+ headers = count.nil? ? {} : { TRACE_COUNT_HEADER => count.to_s }
93
+ headers = headers.merge(@headers)
94
+ request = Net::HTTP::Post.new(url, headers)
95
+ request.body = data
96
+
97
+ response = Net::HTTP.start(@hostname, @port, read_timeout: TIMEOUT) { |http| http.request(request) }
98
+ handle_response(response)
99
+ rescue StandardError => e
100
+ Datadog::Tracer.log.error(e.message)
101
+ 500
117
102
  end
118
103
 
119
104
  # Downgrade the connection to a compatibility version of the HTTPTransport;
@@ -181,6 +166,8 @@ module Datadog
181
166
  @mutex.synchronize { @count_server_error += 1 }
182
167
  end
183
168
 
169
+ process_callback(response)
170
+
184
171
  status_code
185
172
  rescue StandardError => e
186
173
  Datadog::Tracer.log.error(e.message)
@@ -201,10 +188,10 @@ module Datadog
201
188
 
202
189
  private
203
190
 
204
- def process_callback(action, response)
191
+ def process_callback(response)
205
192
  return unless @response_callback && @response_callback.respond_to?(:call)
206
193
 
207
- @response_callback.call(action, response, @api)
194
+ @response_callback.call(response)
208
195
  rescue => e
209
196
  Tracer.log.debug("Error processing callback: #{e}")
210
197
  end
@@ -1,9 +1,10 @@
1
1
  module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 11
5
- PATCH = 4
4
+ MINOR = 12
5
+ PATCH = 0
6
+ PRE = 'beta1'.freeze
6
7
 
7
- STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
8
9
  end
9
10
  end
@@ -5,7 +5,7 @@ require 'ddtrace/workers'
5
5
  module Datadog
6
6
  # Traces and services writer that periodically sends data to the trace-agent
7
7
  class Writer
8
- attr_reader :transport, :worker, :priority_sampler
8
+ attr_reader :transport, :worker
9
9
 
10
10
  HOSTNAME = 'localhost'.freeze
11
11
  PORT = '8126'.freeze
@@ -117,16 +117,10 @@ module Datadog
117
117
 
118
118
  private
119
119
 
120
- def sampling_updater(action, response, api)
121
- return unless action == :traces && response.is_a?(Net::HTTPOK)
122
-
123
- if api[:version] == HTTPTransport::V4
124
- service_rates = JSON.parse(response.body)
125
- @priority_sampler.update(service_rates)
126
- true
127
- else
128
- false
129
- end
120
+ def sampling_updater(response)
121
+ return unless response.is_a?(Net::HTTPOK)
122
+ service_rates = JSON.parse(response.body)
123
+ @priority_sampler.update(service_rates)
130
124
  end
131
125
  end
132
126
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.12.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-29 00:00:00.000000000 Z
11
+ date: 2018-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -222,7 +222,6 @@ files:
222
222
  - ".rubocop.yml"
223
223
  - ".yardopts"
224
224
  - Appraisals
225
- - CHANGELOG.md
226
225
  - Gemfile
227
226
  - LICENSE
228
227
  - README.md
@@ -270,6 +269,7 @@ files:
270
269
  - lib/ddtrace/contrib/faraday/patcher.rb
271
270
  - lib/ddtrace/contrib/grape/endpoint.rb
272
271
  - lib/ddtrace/contrib/grape/patcher.rb
272
+ - lib/ddtrace/contrib/graphql/patcher.rb
273
273
  - lib/ddtrace/contrib/http/patcher.rb
274
274
  - lib/ddtrace/contrib/mongodb/parsers.rb
275
275
  - lib/ddtrace/contrib/mongodb/patcher.rb
@@ -347,9 +347,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
347
347
  version: 1.9.1
348
348
  required_rubygems_version: !ruby/object:Gem::Requirement
349
349
  requirements:
350
- - - ">="
350
+ - - ">"
351
351
  - !ruby/object:Gem::Version
352
- version: '0'
352
+ version: 1.3.1
353
353
  requirements: []
354
354
  rubyforge_project:
355
355
  rubygems_version: 2.6.14
@@ -1,260 +0,0 @@
1
- # Changelog
2
-
3
- ## [Unreleased (stable)]
4
-
5
- ## [Unreleased (beta)]
6
-
7
- ## [0.12.0.beta2] - 2018-02-28
8
-
9
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta2
10
-
11
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta1...v0.12.0.beta2
12
-
13
- ### Fixed
14
- - Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
15
-
16
- ## [0.12.0.beta1] - 2018-02-09
17
-
18
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta1
19
-
20
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.12.0.beta1
21
-
22
- ### Added
23
- - GraphQL integration (supporting graphql 1.7.9+) (#295)
24
- - ActiveRecord object instantiation tracing (#311, #334)
25
- - `http.request_id` tag to Rack spans (#335)
26
-
27
- ## [0.11.4] - 2018-03-29
28
-
29
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.4
30
-
31
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4
32
-
33
- ### Fixed
34
- - Transport body parsing when downgrading (#369)
35
- - Transport incorrectly attempting to apply sampling to service metadata (#370)
36
- - `sql.active_record` traces showing incorrect adapter settings when non-default adapter used (#383)
37
-
38
- ## [0.11.3] - 2018-03-06
39
-
40
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.3
41
-
42
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3
43
-
44
- ### Added
45
- - CHANGELOG.md (#350, #363) (@awendt)
46
- - `http.request_id` tag to Rack spans (#335)
47
- - Tracer configuration to README.md (#332) (@noma4i)
48
-
49
- ### Fixed
50
- - Extra indentation in README.md (#349) (@ck3g)
51
- - `http.url` when Rails raises exceptions (#351, #353)
52
- - Rails from being patched twice (#352)
53
- - 4XX responses from middleware being marked as errors (#345)
54
- - Rails exception middleware sometimes not being inserted at correct position (#345)
55
- - Processing pipeline documentation typo (#355) (@MMartyn)
56
- - Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
57
- - Use of block syntax with Rails `render` not working (#359, #360) (@dorner)
58
-
59
- ## [0.11.2] - 2018-02-02
60
-
61
- **Critical update**: `Datadog::Monkey` removed in version 0.11.1. Adds `Datadog::Monkey` back as no-op, deprecated module.
62
-
63
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.2
64
-
65
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.1...v0.11.2
66
-
67
- ### Deprecated
68
- - `Datadog::Monkey` to be no-op and print deprecation warnings.
69
-
70
- ## [0.11.1] - 2018-01-29
71
-
72
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.1
73
-
74
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0...v0.11.1
75
-
76
- ### Added
77
- - `http.base_url` tag for Rack applications (#301, #327)
78
- - `distributed_tracing` option to Sinatra (#325)
79
- - `exception_controller` option to Rails (#320)
80
-
81
- ### Changed
82
- - Decoupled Sinatra and ActiveRecord integrations (#328, #330) (@hawknewton)
83
- - Racecar uses preferred ActiveSupport::Notifications strategy (#323)
84
-
85
- ### Removed
86
- - `Datadog::Monkey` in favor of newer configuration API (#322)
87
-
88
- ### Fixed
89
- - Custom resource names from Rails controllers being overridden (#321)
90
- - Custom Rails exception controllers reporting as the resource (#320)
91
-
92
- ## [0.11.0] - 2018-01-17
93
-
94
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0
95
-
96
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0
97
-
98
- ## [0.11.0.beta2] - 2017-12-27
99
-
100
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta2
101
-
102
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0.beta1...v0.11.0.beta2
103
-
104
- ## [0.11.0.beta1] - 2017-12-04
105
-
106
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta1
107
-
108
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0.beta1
109
-
110
- ## [0.10.0] - 2017-11-30
111
-
112
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.10.0
113
-
114
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.2...v0.10.0
115
-
116
- ## [0.9.2] - 2017-11-03
117
-
118
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.2
119
-
120
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.1...v0.9.2
121
-
122
- ## [0.9.1] - 2017-11-02
123
-
124
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.1
125
-
126
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.0...v0.9.1
127
-
128
- ## [0.9.0] - 2017-10-06
129
-
130
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.0
131
-
132
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.2...v0.9.0
133
-
134
- ## [0.8.2] - 2017-09-08
135
-
136
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.2
137
-
138
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.1...v0.8.2
139
-
140
- ## [0.8.1] - 2017-08-10
141
-
142
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.1
143
-
144
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.0...v0.8.1
145
-
146
- ## [0.8.0] - 2017-07-24
147
-
148
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.0
149
-
150
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.2...v0.8.0
151
-
152
- ## [0.7.2] - 2017-05-24
153
-
154
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.2
155
-
156
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.1...v0.7.2
157
-
158
- ## [0.7.1] - 2017-05-10
159
-
160
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.1
161
-
162
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.0...v0.7.1
163
-
164
- ## [0.7.0] - 2017-04-24
165
-
166
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.0
167
-
168
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.2...v0.7.0
169
-
170
- ## [0.6.2] - 2017-04-07
171
-
172
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.2
173
-
174
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.1...v0.6.2
175
-
176
- ## [0.6.1] - 2017-04-05
177
-
178
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.1
179
-
180
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.0...v0.6.1
181
-
182
- ## [0.6.0] - 2017-03-28
183
-
184
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.0
185
-
186
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.5.0...v0.6.0
187
-
188
- ## [0.5.0] - 2017-03-08
189
-
190
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.5.0
191
-
192
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.3...v0.5.0
193
-
194
- ## [0.4.3] - 2017-02-17
195
-
196
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.3
197
-
198
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.2...v0.4.3
199
-
200
- ## [0.4.2] - 2017-02-14
201
-
202
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.2
203
-
204
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.1...v0.4.2
205
-
206
- ## [0.4.1] - 2017-02-14
207
-
208
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.1
209
-
210
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.0...v0.4.1
211
-
212
- ## [0.4.0] - 2017-01-24
213
-
214
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.0
215
-
216
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.1...v0.4.0
217
-
218
- ## [0.3.1] - 2017-01-23
219
-
220
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
221
-
222
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
223
-
224
- [Unreleased (stable)]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...master
225
- [Unreleased (beta)]: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta2...0.12-dev
226
- [0.12.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta1...v0.12.0.beta2
227
- [0.12.0.beta1]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.12.0.beta1
228
- [0.11.4]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4
229
- [0.11.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3
230
- [0.11.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.1...v0.11.2
231
- [0.11.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0...v0.11.1
232
- [0.11.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0
233
- [0.11.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0.beta1...v0.11.0.beta2
234
- [0.11.0.beta1]: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0.beta1
235
- [0.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.2...v0.10.0
236
- [0.9.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.1...v0.9.2
237
- [0.9.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.0...v0.9.1
238
- [0.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.2...v0.9.0
239
- [0.8.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.1...v0.8.2
240
- [0.8.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.0...v0.8.1
241
- [0.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.2...v0.8.0
242
- [0.7.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.1...v0.7.2
243
- [0.7.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.0...v0.7.1
244
- [0.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.2...v0.7.0
245
- [0.6.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.1...v0.6.2
246
- [0.6.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.0...v0.6.1
247
- [0.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.5.0...v0.6.0
248
- [0.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.3...v0.5.0
249
- [0.4.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.2...v0.4.3
250
- [0.4.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.1...v0.4.2
251
- [0.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.0...v0.4.1
252
- [0.4.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.3.1...v0.4.0
253
- [0.3.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
254
- [0.3.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.2.0...v0.3.0
255
- [0.2.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.5...v0.2.0
256
- [0.1.5]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.4...v0.1.5
257
- [0.1.4]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.3...v0.1.4
258
- [0.1.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.2...v0.1.3
259
- [0.1.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.1...v0.1.2
260
- [0.1.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.0...v0.1.1